From 452e36f25768672a9a270b1654466bfc53b5e55e Mon Sep 17 00:00:00 2001 From: Bastien DUMONT <bdumont@grandlyon.com> Date: Wed, 22 Feb 2023 12:45:07 +0000 Subject: [PATCH] fix: free workshop under condition --- .../scripts/1676885604196-free-workshop.ts | 28 +++++++++++++++++++ src/structures/schemas/structure.schema.ts | 3 +- .../services/aptic-structures.service.ts | 2 +- test/mock/services/structures.mock.service.ts | 8 +++--- 4 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 src/migrations/scripts/1676885604196-free-workshop.ts diff --git a/src/migrations/scripts/1676885604196-free-workshop.ts b/src/migrations/scripts/1676885604196-free-workshop.ts new file mode 100644 index 000000000..511db2c1e --- /dev/null +++ b/src/migrations/scripts/1676885604196-free-workshop.ts @@ -0,0 +1,28 @@ +import { Db } from 'mongodb'; +import { getDb } from '../migrations-utils/db'; + +export const up = async () => { + const db: Db = await getDb(); + const cursor = db.collection('structures').find({}); + let document; + while ((document = await cursor.next())) { + await db + .collection('structures') + .updateOne({ _id: document._id }, [{ $set: { freeWorkShop: document.freeWorkShop ? 'Oui' : 'Non' } }]); + } + console.log(`Update done : 'freeWorkshop' updated to string`); +}; + +export const down = async () => { + const db: Db = await getDb(); + const cursor = db.collection('structures').find({}); + let document; + while ((document = await cursor.next())) { + await db + .collection('structures') + .updateOne({ _id: document._id }, [ + { $set: { freeWorkShop: ['Oui', 'Oui, sous condition'].includes(document.freeWorkShop) ? true : false } }, + ]); + } + console.log(`Revert done : 'freeWorkshop' updated to boolean`); +}; diff --git a/src/structures/schemas/structure.schema.ts b/src/structures/schemas/structure.schema.ts index 3f6f2f685..ae80eebb0 100644 --- a/src/structures/schemas/structure.schema.ts +++ b/src/structures/schemas/structure.schema.ts @@ -106,7 +106,8 @@ export class Structure { @Prop() @IsNotEmpty() - freeWorkShop: boolean; + /** 'Oui' | 'Oui sous condition' | 'Non' */ + freeWorkShop: string; @Prop() nbComputers: number; diff --git a/src/structures/services/aptic-structures.service.ts b/src/structures/services/aptic-structures.service.ts index eddf09fa3..21dd98c8b 100644 --- a/src/structures/services/aptic-structures.service.ts +++ b/src/structures/services/aptic-structures.service.ts @@ -87,7 +87,7 @@ export class ApticStructuresService { createdStructure.remoteAccompaniment = false; createdStructure.categories.accessModality = ['accesLibre']; createdStructure.accountVerified = true; - createdStructure.freeWorkShop = false; + createdStructure.freeWorkShop = 'Non'; createdStructure.nbComputers = 0; createdStructure.nbPrinters = 0; createdStructure.nbScanners = 0; diff --git a/test/mock/services/structures.mock.service.ts b/test/mock/services/structures.mock.service.ts index ee89e8a9f..9dd4e40a7 100644 --- a/test/mock/services/structures.mock.service.ts +++ b/test/mock/services/structures.mock.service.ts @@ -1222,7 +1222,7 @@ export class StructuresServiceMock { nbComputers: 1, nbPrinters: 1, nbScanners: 1, - freeWorkShop: false, + freeWorkShop: 'Non', accountVerified: true, personalOffers: [personalOfferDocument], createdAt: new Date('2021-05-06T09:42:38.000Z'), @@ -1428,7 +1428,7 @@ export const mockResinStructures: Array<Structure> = [ nbComputers: 1, nbPrinters: 1, nbScanners: 1, - freeWorkShop: false, + freeWorkShop: 'Non', accountVerified: true, createdAt: new Date('2021-05-06T09:42:38.000Z'), updatedAt: new Date('2021-05-06T09:42:50.000Z'), @@ -1532,7 +1532,7 @@ export const mockResinStructures: Array<Structure> = [ nbComputers: 1, nbPrinters: 1, nbScanners: 1, - freeWorkShop: false, + freeWorkShop: 'Non', accountVerified: true, personalOffers: [], createdAt: new Date('2021-05-06T09:42:38.000Z'), @@ -1636,7 +1636,7 @@ export const mockResinStructures: Array<Structure> = [ nbComputers: 1, nbPrinters: 1, nbScanners: 1, - freeWorkShop: false, + freeWorkShop: 'Non', accountVerified: true, personalOffers: [], createdAt: new Date('2021-05-06T09:42:38.000Z'), -- GitLab