From ce1c24bb23d9e70166a5c5ae07e9dd1becb5a406 Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Tue, 21 Jan 2025 13:28:50 -0500 Subject: [PATCH] feat: add terms of use fields to Dataset model, copy fields from Version payload to Dataset --- src/datasets/domain/models/Dataset.ts | 12 ++++++++++++ .../transformers/DatasetPayload.ts | 8 ++++++++ .../transformers/datasetTransformers.ts | 10 ++++++++++ test/testHelpers/datasets/datasetHelper.ts | 18 ++++++++++++++++++ 4 files changed, 48 insertions(+) diff --git a/src/datasets/domain/models/Dataset.ts b/src/datasets/domain/models/Dataset.ts index 32d68e03..9bf4d2a0 100644 --- a/src/datasets/domain/models/Dataset.ts +++ b/src/datasets/domain/models/Dataset.ts @@ -6,6 +6,7 @@ export interface Dataset { versionId: number versionInfo: DatasetVersionInfo license?: DatasetLicense + termsOfUse: TermsOfUse alternativePersistentId?: string publicationDate?: string citationDate?: string @@ -35,6 +36,17 @@ export interface DatasetLicense { iconUri?: string } +export interface TermsOfUse { + fileAccessRequest: boolean + termsOfAccess?: string + dataAccessPlace?: string + originalArchive?: string + availabilityStatus?: string + contactForAccess?: string + sizeOfCollection?: string + studyCompletion?: string +} + export type DatasetMetadataBlocks = [CitationMetadataBlock, ...DatasetMetadataBlock[]] export interface DatasetMetadataBlock { diff --git a/src/datasets/infra/repositories/transformers/DatasetPayload.ts b/src/datasets/infra/repositories/transformers/DatasetPayload.ts index 4f7b3ec2..8619c21f 100644 --- a/src/datasets/infra/repositories/transformers/DatasetPayload.ts +++ b/src/datasets/infra/repositories/transformers/DatasetPayload.ts @@ -16,6 +16,14 @@ export interface DatasetPayload { alternativePersistentId?: string publicationDate?: string citationDate?: string + fileAccessRequest: boolean + termsOfAccess?: string + dataAccessPlace?: string + originalArchive?: string + availabilityStatus?: string + contactForAccess?: string + sizeOfCollection?: string + studyCompletion?: string files: FilePayload[] isPartOf: OwnerNodePayload } diff --git a/src/datasets/infra/repositories/transformers/datasetTransformers.ts b/src/datasets/infra/repositories/transformers/datasetTransformers.ts index 51f40489..5cee3a86 100644 --- a/src/datasets/infra/repositories/transformers/datasetTransformers.ts +++ b/src/datasets/infra/repositories/transformers/datasetTransformers.ts @@ -233,6 +233,16 @@ export const transformVersionPayloadToDataset = ( lastUpdateTime: new Date(versionPayload.lastUpdateTime), releaseTime: new Date(versionPayload.releaseTime) }, + termsOfUse: { + fileAccessRequest: versionPayload.fileAccessRequest, + termsOfAccess: versionPayload.termsOfAccess, + dataAccessPlace: versionPayload.dataAccessPlace, + originalArchive: versionPayload.originalArchive, + availabilityStatus: versionPayload.availabilityStatus, + contactForAccess: versionPayload.contactForAccess, + sizeOfCollection: versionPayload.sizeOfCollection, + studyCompletion: versionPayload.studyCompletion + }, metadataBlocks: transformPayloadToDatasetMetadataBlocks( versionPayload.metadataBlocks, keepRawFields diff --git a/test/testHelpers/datasets/datasetHelper.ts b/test/testHelpers/datasets/datasetHelper.ts index 0d50c4a9..3c4bac4f 100644 --- a/test/testHelpers/datasets/datasetHelper.ts +++ b/test/testHelpers/datasets/datasetHelper.ts @@ -52,6 +52,16 @@ export const createDatasetModel = ( lastUpdateTime: new Date(DATASET_UPDATE_TIME_STR), releaseTime: new Date(DATASET_RELEASE_TIME_STR) }, + termsOfUse: { + fileAccessRequest: true, + termsOfAccess: 'Terms of access', + dataAccessPlace: 'Data access place', + originalArchive: 'Original archive', + availabilityStatus: 'Availability status', + contactForAccess: 'Contact for access', + sizeOfCollection: 'Size of collection', + studyCompletion: 'Study completion' + }, publicationDate: DATASET_PUBLICATION_DATE_STR, metadataBlocks: [ { @@ -111,6 +121,14 @@ export const createDatasetVersionPayload = ( releaseTime: DATASET_RELEASE_TIME_STR, createTime: DATASET_CREATE_TIME_STR, publicationDate: DATASET_PUBLICATION_DATE_STR, + fileAccessRequest: true, + termsOfAccess: 'Terms of access', + dataAccessPlace: 'Data access place', + originalArchive: 'Original archive', + availabilityStatus: 'Availability status', + contactForAccess: 'Contact for access', + sizeOfCollection: 'Size of collection', + studyCompletion: 'Study completion', metadataBlocks: { citation: { name: 'citation',