From 56523332f27e1fb6a9cf0a9595364d0f238ecf2b Mon Sep 17 00:00:00 2001 From: Cheng Shi Date: Fri, 1 Nov 2024 16:52:12 -0400 Subject: [PATCH 1/2] fix: change the hard-coded part in DatasetJSrepo to dynamic --- .../DatasetJSDataverseRepository.ts | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts b/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts index cb352631a..08d85854d 100644 --- a/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts +++ b/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts @@ -201,23 +201,35 @@ export class DatasetJSDataverseRepository implements DatasetRepository { getDatasetSummaryFieldNames.execute(), getPrivateUrlDatasetCitation.execute(privateUrlToken) ]) - .then(([jsDataset, summaryFieldsNames, citation]: [JSDataset, string[], string]) => - JSDatasetMapper.toDataset( + .then(async ([jsDataset, summaryFieldsNames, citation]: [JSDataset, string[], string]) => { + const permissions = await getDatasetUserPermissions.execute(jsDataset.id) + const locks = await getDatasetLocks.execute(jsDataset.id) + const originalSize = await getDatasetFilesTotalDownloadSize.execute( + 'doi:10.5072/FK2/LPNYGV', //TODO: should change this to jsDataset.id or jsDataset.persistentId + DatasetNonNumericVersion.LATEST_PUBLISHED, + FileDownloadSizeMode.ORIGINAL, + undefined, + includeDeaccessioned + ) + + const archivalSize = await getDatasetFilesTotalDownloadSize.execute( + 'doi:10.5072/FK2/LPNYGV', //TODO: should change this to jsDataset.id or jsDataset.persistentId + DatasetNonNumericVersion.LATEST_PUBLISHED, + FileDownloadSizeMode.ARCHIVAL, + undefined, + includeDeaccessioned + ) + + return JSDatasetMapper.toDataset( jsDataset, citation, summaryFieldsNames, - { - canEditDataset: true, - canPublishDataset: true, - canManageDatasetPermissions: true, - canDeleteDatasetDraft: true, - canViewUnpublishedDataset: true - }, // TODO Connect with JS dataset permissions for privateUrl when it is available in js-dataverse - [], // TODO Connect with JS dataset locks for privateUrl when it is available in js-dataverse - 0, // TODO Connect with JS dataset filesTotalDownloadSize for privateUrl when it is available in js-dataverse - 0 // TODO Connect with JS dataset filesTotalDownloadSize for privateUrl when it is available in js-dataverse + permissions, + locks, + originalSize, + archivalSize ) - ) + }) .catch((error: ReadError) => { throw new Error(error.message) }) From 2a8ed75b651fc63e53014aff035865d6aff9b6dd Mon Sep 17 00:00:00 2001 From: Cheng Shi Date: Tue, 5 Nov 2024 09:35:49 -0500 Subject: [PATCH 2/2] fix: remove a hardcoded part and add new results --- .../DatasetJSDataverseRepository.ts | 39 ++++++++++++------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts b/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts index 84c4d93e2..bcbe71a66 100644 --- a/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts +++ b/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts @@ -200,23 +200,36 @@ export class DatasetJSDataverseRepository implements DatasetRepository { getDatasetSummaryFieldNames.execute(), getPrivateUrlDatasetCitation.execute(privateUrlToken) ]) - .then(([jsDataset, summaryFieldsNames, citation]: [JSDataset, string[], string]) => - JSDatasetMapper.toDataset( + .then(async ([jsDataset, summaryFieldsNames, citation]: [JSDataset, string[], string]) => { + const [permissions, locks, originalSize, archivalSize] = await Promise.all([ + getDatasetUserPermissions.execute(jsDataset.id), + getDatasetLocks.execute(jsDataset.id), + getDatasetFilesTotalDownloadSize.execute( + jsDataset.id, + DatasetNonNumericVersion.DRAFT, + FileDownloadSizeMode.ORIGINAL, + undefined, + includeDeaccessioned + ), + getDatasetFilesTotalDownloadSize.execute( + jsDataset.id, + DatasetNonNumericVersion.DRAFT, + FileDownloadSizeMode.ARCHIVAL, + undefined, + includeDeaccessioned + ) + ]) + + return JSDatasetMapper.toDataset( jsDataset, citation, summaryFieldsNames, - { - canEditDataset: true, - canPublishDataset: true, - canManageDatasetPermissions: true, - canDeleteDatasetDraft: true, - canViewUnpublishedDataset: true - }, // TODO Connect with JS dataset permissions for privateUrl when it is available in js-dataverse - [], // TODO Connect with JS dataset locks for privateUrl when it is available in js-dataverse - 0, // TODO Connect with JS dataset filesTotalDownloadSize for privateUrl when it is available in js-dataverse - 0 // TODO Connect with JS dataset filesTotalDownloadSize for privateUrl when it is available in js-dataverse + permissions, + locks, + originalSize, + archivalSize ) - ) + }) .catch((error: ReadError) => { throw new Error(error.message) })