From 7f37fe15c9dfa69f7d1d0d326dae8ac6e9327405 Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Mon, 23 Feb 2026 10:18:06 -0500 Subject: [PATCH] add use cases for editing template to TemplatesRepository.ts --- .../dtos/UpdateTemplateLicenseTermsDTO.ts | 6 + .../domain/dtos/UpdateTemplateMetadataDTO.ts | 7 ++ .../repositories/ITemplatesRepository.ts | 13 ++ .../useCases/UpdateTemplateLicenseTerms.ts | 15 +++ .../domain/useCases/UpdateTemplateMetadata.ts | 19 +++ .../useCases/UpdateTemplateTermsOfAccess.ts | 15 +++ src/templates/index.ts | 18 ++- .../infra/repositories/TemplatesRepository.ts | 43 +++++++ .../templateTermsOfAccessTransformers.ts | 30 +++++ test/environment/.env | 4 +- .../UpdateTemplateLicenseTerms.test.ts | 42 +++++++ .../templates/UpdateTemplateMetadata.test.ts | 76 +++++++++++ .../UpdateTemplateTermsOfAccess.test.ts | 42 +++++++ ...TemplatesRepositoryTemplateUpdates.test.ts | 118 ++++++++++++++++++ .../UpdateTemplateLicenseTerms.test.ts | 36 ++++++ .../templates/UpdateTemplateMetadata.test.ts | 45 +++++++ .../UpdateTemplateTermsOfAccess.test.ts | 35 ++++++ 17 files changed, 561 insertions(+), 3 deletions(-) create mode 100644 src/templates/domain/dtos/UpdateTemplateLicenseTermsDTO.ts create mode 100644 src/templates/domain/dtos/UpdateTemplateMetadataDTO.ts create mode 100644 src/templates/domain/useCases/UpdateTemplateLicenseTerms.ts create mode 100644 src/templates/domain/useCases/UpdateTemplateMetadata.ts create mode 100644 src/templates/domain/useCases/UpdateTemplateTermsOfAccess.ts create mode 100644 src/templates/infra/repositories/transformers/templateTermsOfAccessTransformers.ts create mode 100644 test/functional/templates/UpdateTemplateLicenseTerms.test.ts create mode 100644 test/functional/templates/UpdateTemplateMetadata.test.ts create mode 100644 test/functional/templates/UpdateTemplateTermsOfAccess.test.ts create mode 100644 test/unit/templates/TemplatesRepositoryTemplateUpdates.test.ts create mode 100644 test/unit/templates/UpdateTemplateLicenseTerms.test.ts create mode 100644 test/unit/templates/UpdateTemplateMetadata.test.ts create mode 100644 test/unit/templates/UpdateTemplateTermsOfAccess.test.ts diff --git a/src/templates/domain/dtos/UpdateTemplateLicenseTermsDTO.ts b/src/templates/domain/dtos/UpdateTemplateLicenseTermsDTO.ts new file mode 100644 index 00000000..b476a07d --- /dev/null +++ b/src/templates/domain/dtos/UpdateTemplateLicenseTermsDTO.ts @@ -0,0 +1,6 @@ +import { CustomTerms } from '../../../datasets/domain/models/Dataset' + +export interface UpdateTemplateLicenseTermsDTO { + name?: string + customTerms?: CustomTerms +} diff --git a/src/templates/domain/dtos/UpdateTemplateMetadataDTO.ts b/src/templates/domain/dtos/UpdateTemplateMetadataDTO.ts new file mode 100644 index 00000000..3504fcea --- /dev/null +++ b/src/templates/domain/dtos/UpdateTemplateMetadataDTO.ts @@ -0,0 +1,7 @@ +import { TemplateFieldDTO, TemplateInstructionDTO } from './CreateTemplateDTO' + +export interface UpdateTemplateMetadataDTO { + name?: string + fields?: TemplateFieldDTO[] + instructions?: TemplateInstructionDTO[] +} diff --git a/src/templates/domain/repositories/ITemplatesRepository.ts b/src/templates/domain/repositories/ITemplatesRepository.ts index 3482d340..135aec3c 100644 --- a/src/templates/domain/repositories/ITemplatesRepository.ts +++ b/src/templates/domain/repositories/ITemplatesRepository.ts @@ -1,8 +1,21 @@ import { CreateTemplateDTO } from '../dtos/CreateTemplateDTO' +import { UpdateTemplateLicenseTermsDTO } from '../dtos/UpdateTemplateLicenseTermsDTO' +import { UpdateTemplateMetadataDTO } from '../dtos/UpdateTemplateMetadataDTO' import { Template } from '../models/Template' +import { TermsOfAccess } from '../../../datasets/domain/models/Dataset' export interface ITemplatesRepository { createTemplate(collectionIdOrAlias: number | string, template: CreateTemplateDTO): Promise + updateTemplateMetadata( + templateId: number, + payload: UpdateTemplateMetadataDTO, + replace?: boolean + ): Promise + updateTemplateLicenseTerms( + templateId: number, + payload: UpdateTemplateLicenseTermsDTO + ): Promise + updateTemplateTermsOfAccess(templateId: number, termsOfAccess: TermsOfAccess): Promise getTemplate(templateId: number): Promise