From 0755aedffb92613ba5bebebee1dfb8a214adf191 Mon Sep 17 00:00:00 2001 From: P-Jeremy Date: Wed, 11 Dec 2024 14:57:41 +0100 Subject: [PATCH] feat(api): add script to save a new legal document version --- .../add-new-legal-document-version.js | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 api/scripts/legal-documents/add-new-legal-document-version.js diff --git a/api/scripts/legal-documents/add-new-legal-document-version.js b/api/scripts/legal-documents/add-new-legal-document-version.js new file mode 100644 index 00000000000..de6c76dea03 --- /dev/null +++ b/api/scripts/legal-documents/add-new-legal-document-version.js @@ -0,0 +1,53 @@ +import 'dotenv/config'; + +import * as legalDocumentRepository from '../../src/legal-documents/infrastructure/repositories/legal-document.repository.js'; +import { Script } from '../../src/shared/application/scripts/script.js'; +import { ScriptRunner } from '../../src/shared/application/scripts/script-runner.js'; + +export class AddNewLegalDocumentVersion extends Script { + constructor() { + super({ + description: 'Add a new legal document version.', + permanent: true, + options: { + type: { + type: 'string', + describe: 'Type of document (ex: "TOS", "PDP")', + demandOption: true, + }, + service: { + type: 'string', + describe: 'Associated service (ex: "pix-app", "pix-orga",...)', + demandOption: true, + }, + versionAt: { + type: 'string', + describe: 'Version date of the legal document, format "YYYY-MM-DD", (ex: "2020-02-27")', + demandOption: true, + }, + }, + }); + } + + async handle({ options, logger }) { + let { type, service, versionAt } = options; + + type = type?.trim(); + service = service?.trim(); + versionAt = versionAt?.trim(); + + logger.info(`Adding new legal document for type:${type}, service:${service}, versionAt:${versionAt}`); + + try { + await legalDocumentRepository.createLegalDocument({ type, service, versionAt }); + } catch (error) { + logger.error(error); + } finally { + logger.info( + `New legal document for type:${type}, service:${service}, versionAt:${versionAt} added successfully.`, + ); + } + } +} + +await ScriptRunner.execute(import.meta.url, AddNewLegalDocumentVersion);