From a63445fca75cb1e70290f786689e9cdf129e3285 Mon Sep 17 00:00:00 2001
From: Adel LAKHDAR <alakhdar@grandlyon.com>
Date: Wed, 12 Jun 2024 14:29:09 +0000
Subject: [PATCH] change(structure): Change mairie struct type to commune

---
 scripts/data/employers.js                     |  2 +-
 scripts/data/structures.js                    |  2 +-
 scripts/data/structuresType.js                |  2 +-
 .../1716801163371-rename-mairie-structtype.ts | 56 +++++++++++++++++++
 .../structures-for-search.mock.service.ts     |  2 +-
 5 files changed, 60 insertions(+), 4 deletions(-)
 create mode 100644 src/migrations/scripts/1716801163371-rename-mairie-structtype.ts

diff --git a/scripts/data/employers.js b/scripts/data/employers.js
index 74be23fb2..6d1a3404a 100644
--- a/scripts/data/employers.js
+++ b/scripts/data/employers.js
@@ -55,7 +55,7 @@ module.exports = {
     },
     {
       _id: mongoose.Types.ObjectId('627b6ca899862168705ca831'),
-      name: 'Mairie',
+      name: 'Commune',
       validated: true,
     },
     {
diff --git a/scripts/data/structures.js b/scripts/data/structures.js
index f1377d2f1..3a010724a 100644
--- a/scripts/data/structures.js
+++ b/scripts/data/structures.js
@@ -62,7 +62,7 @@ module.exports = {
       nbComputers: 5,
       nbPrinters: 1,
       nbScanners: 1,
-      structureType: 'mairie',
+      structureType: 'commune',
       hours: {
         monday: {
           open: true,
diff --git a/scripts/data/structuresType.js b/scripts/data/structuresType.js
index efd9c7c1e..90f47d087 100644
--- a/scripts/data/structuresType.js
+++ b/scripts/data/structuresType.js
@@ -7,7 +7,7 @@ module.exports = {
       _id: mongoose.Types.ObjectId('601c223d3f612000068d4366'),
       name: 'Publique',
       values: [
-        'mairie',
+        'commune',
         'CAF',
         'CCAS',
         'CARSAT',
diff --git a/src/migrations/scripts/1716801163371-rename-mairie-structtype.ts b/src/migrations/scripts/1716801163371-rename-mairie-structtype.ts
new file mode 100644
index 000000000..1b5851dae
--- /dev/null
+++ b/src/migrations/scripts/1716801163371-rename-mairie-structtype.ts
@@ -0,0 +1,56 @@
+import { Db } from 'mongodb';
+import { getDb } from '../migrations-utils/db';
+
+export const up = async () => {
+  try {
+    const db: Db = await getDb();
+
+    await db.collection('structuretype').updateOne(
+      { value: 'mairie' },
+      { $set: { value: 'commune', name: 'Commune' } }
+    );
+    console.log('Update done in structuretype: "mairie" -> "commune"');
+
+    await db.collection('employers').updateMany(
+      { name: 'Mairie' },
+      { $set: { name: 'Commune' } }
+    );
+    console.log('Update done in employers: "Mairie" -> "Commune"');
+
+    await db.collection('structures').updateMany(
+      { structureType: 'mairie' },
+      { $set: { structureType: 'commune' } }
+    );
+    console.log('Update done in structures: "mairie" -> "Commune"');
+
+  } catch (error) {
+    console.error(`Error during the migration: ${error}`);
+  }
+};
+
+export const down = async () => {
+  try {
+    const db: Db = await getDb();
+
+    await db.collection('structuretype').updateOne(
+      { value: 'commune' },
+      { $set: { value: 'mairie', name: 'mairie' } }
+    );
+    console.log('Revert done in structType: "commune" -> "mairie"');
+
+    await db.collection('employers').updateMany(
+      { name: 'Commune' },
+      { $set: { name: 'Mairie' } }
+    );
+    console.log('Revert done in employers: "Commune" -> "Mairie"');
+
+    await db.collection('structures').updateMany(
+      { structureType: 'commune' },
+      { $set: { structureType: 'mairie' } }
+    );
+    console.log('Revert done in structures: "commune" -> "mairie"');
+
+  } catch (error) {
+    console.error(`Error during the rollback: ${error}`);
+  }
+};
diff --git a/test/mock/services/structures-for-search.mock.service.ts b/test/mock/services/structures-for-search.mock.service.ts
index cf92d736a..7d0d964d6 100644
--- a/test/mock/services/structures-for-search.mock.service.ts
+++ b/test/mock/services/structures-for-search.mock.service.ts
@@ -35,7 +35,7 @@ export class StructuresForSearchServiceMock {
       {
         _id: '60b4b0836a9d4500313b8661',
         structureName: 'Mairie (La Tour de Salvagny)',
-        structureType: 'mairie',
+        structureType: 'commune',
         address: {
           numero: null,
           street: 'Place de la Mairie',
-- 
GitLab