From a1a743d5c3391c2c54ec095a6cf12e4f2aeaae58 Mon Sep 17 00:00:00 2001
From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com>
Date: Fri, 9 Apr 2021 14:02:58 +0200
Subject: [PATCH] feat: add newsletter data insert script

---
 .gitignore                                    |  3 ++-
 package.json                                  |  6 ++---
 .../{ => scripts}/1617284203579-apticid.ts    |  6 ++---
 .../1617962328658-add-newsletter-data.ts      | 23 +++++++++++++++++++
 4 files changed, 31 insertions(+), 7 deletions(-)
 rename src/migrations/{ => scripts}/1617284203579-apticid.ts (99%)
 create mode 100644 src/migrations/scripts/1617962328658-add-newsletter-data.ts

diff --git a/.gitignore b/.gitignore
index 257fef438..464102221 100644
--- a/.gitignore
+++ b/.gitignore
@@ -391,4 +391,5 @@ Temporary Items
 dist
 
 # Migrations
-.migrate
\ No newline at end of file
+.migrate
+./src/migrations/data/
\ No newline at end of file
diff --git a/package.json b/package.json
index 1fcf4cd1f..94301c9ad 100644
--- a/package.json
+++ b/package.json
@@ -20,9 +20,9 @@
     "test:cov": "jest --config ./test/jest.json --coverage --ci --reporters=default --reporters=jest-junit",
     "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
     "test:e2e": "jest --config ./test/jest-e2e.json",
-    "migrate:create": "migrate create --template-file ./src/migrations/migrations-utils/template.ts --migrations-dir=\"./src/migrations\" --compiler=\"ts:./src/migrations/migrations-utils/ts-compiler.js\"",
-    "migrate:up": "migrate --migrations-dir=\"./src/migrations\" --compiler=\"ts:./src/migrations/migrations-utils/ts-compiler.js\" up",
-    "migrate:down": "migrate --migrations-dir=\"./src/migrations\" --compiler=\"ts:./src/migrations/migrations-utils/ts-compiler.js\" down"
+    "migrate:create": "migrate create --template-file ./src/migrations/migrations-utils/template.ts --migrations-dir=\"./src/migrations/scripts\" --compiler=\"ts:./src/migrations/migrations-utils/ts-compiler.js\"",
+    "migrate:up": "migrate --migrations-dir=\"./src/migrations/scripts\" --compiler=\"ts:./src/migrations/migrations-utils/ts-compiler.js\" up",
+    "migrate:down": "migrate --migrations-dir=\"./src/migrations/scripts\" --compiler=\"ts:./src/migrations/migrations-utils/ts-compiler.js\" down"
   },
   "dependencies": {
     "@nestjs/common": "^7.6.13",
diff --git a/src/migrations/1617284203579-apticid.ts b/src/migrations/scripts/1617284203579-apticid.ts
similarity index 99%
rename from src/migrations/1617284203579-apticid.ts
rename to src/migrations/scripts/1617284203579-apticid.ts
index 0bdbf63e7..b7d5efcf3 100644
--- a/src/migrations/1617284203579-apticid.ts
+++ b/src/migrations/scripts/1617284203579-apticid.ts
@@ -1,4 +1,4 @@
-import { getDb } from './migrations-utils/db';
+import { getDb } from '../migrations-utils/db';
 
 class ApticModule {
   id: string;
@@ -140,7 +140,7 @@ function downgradeStructure(structure): any {
 
   // Base Skills
   newArray = [];
-  newArray.push(switchStructureId(structure.baseSkills, '260', '260')); //TODO:
+  newArray.push(switchStructureId(structure.baseSkills, '260', '260'));
   newArray.push(switchStructureId(structure.baseSkills, '1', '259'));
   newArray.push(switchStructureId(structure.baseSkills, '11', '261'));
   newArray.push(switchStructureId(structure.baseSkills, '38', '222'));
@@ -202,7 +202,7 @@ async function updateApticReferential(db) {
   // Base Skills
   let newModule = { modules: [] };
   const baseSkills: ApticDoc = await db.collection('categoriesformations').findOne({ id: 'baseSkills' });
-  newModule.modules.push(switchId(baseSkills.modules, '260', '260')); //TODO:
+  newModule.modules.push(switchId(baseSkills.modules, '260', '260'));
   newModule.modules.push(switchId(baseSkills.modules, '259', '1'));
   newModule.modules.push(switchId(baseSkills.modules, '261', '11'));
   newModule.modules.push(switchId(baseSkills.modules, '222', '38'));
diff --git a/src/migrations/scripts/1617962328658-add-newsletter-data.ts b/src/migrations/scripts/1617962328658-add-newsletter-data.ts
new file mode 100644
index 000000000..8d5e49b98
--- /dev/null
+++ b/src/migrations/scripts/1617962328658-add-newsletter-data.ts
@@ -0,0 +1,23 @@
+import { Db } from 'mongodb';
+import { getDb } from '../migrations-utils/db';
+import * as fs from 'fs';
+// const fs = require('fs')
+
+export const up = async () => {
+  const db: Db = await getDb();
+  fs.readFile('./src/migrations/data/newsletter-data.json', 'utf8', (err, jsonString) => {
+    if (err) {
+      console.error('File read failed:', err);
+      return;
+    }
+    const parsedData = JSON.parse(jsonString);
+    db.collection('newslettersubscriptions').insertMany(parsedData);
+  });
+};
+
+export const down = async () => {
+  const db: Db = await getDb();
+  /*
+      Code you downgrade script here!
+   */
+};
-- 
GitLab