@@ -6,7 +6,6 @@ const Source = require('../models/source')
66const Value = require ( '../models/value' )
77const Key = require ( '../models/key' )
88const Entries = require ( '../models/entries' )
9- const common = require ( '../../utils/common' )
109const { sleep, json2csv } = require ( '../../utils/common' )
1110const { Client } = require ( 'pg' ) ;
1211const config = require ( '../../config' )
2827 for ( let bucket of minioConfig . subscribe . buckets )
2928 minioWriter . getNotifications ( bucket )
3029
31- async function save ( objects ) {
32- for ( let obj of objects )
33- await minioWriter . insertInDBs ( obj . raw , obj . info , true )
34- return true
35- }
36-
3730async function sync ( ) {
3831 try {
3932 if ( ! syncing ) {
@@ -42,7 +35,6 @@ async function sync() {
4235 await Key . deleteMany ( { } )
4336 await Value . deleteMany ( { } )
4437 await Entries . deleteMany ( { } )
45- //await sleep(10000)
4638 let objects = [ ]
4739 let buckets = await minioWriter . listBuckets ( )
4840 let bucketIndex = 1
@@ -84,12 +76,6 @@ async function sync() {
8476 logger . error ( error )
8577 }
8678
87- //minioWriter.entities.values = minioWriter.entities.values.map(obj => ({ ...obj, visibility: getVisibility(obj) }))
88- //minioWriter.entities.keys = minioWriter.entities.keys.map(obj => ({ ...obj, visibility: getVisibility(obj) }))
89- //minioWriter.entities.entries = minioWriter.entities.entries.map(obj => ({ ...obj, visibility: getVisibility(obj) }))
90-
91- //const existingEntries = await Entries.find({ key: { $in: Object.keys(minioWriter.entries) } }); //TODO now this line is useless
92-
9379 let entries = Object . entries ( minioWriter . entries ) . map ( ( [ key , value ] ) => ( { [ key ] : value } ) ) ;
9480 let entriesInDB = [ ]
9581 for ( let key in minioWriter . entries )
@@ -106,7 +92,6 @@ async function sync() {
10692 log ( error ) ;
10793 } else {
10894 try {
109- // Pulizia di `$` solo in nestedKey
11095 entries = entries . map ( entry => {
11196 let fixedEntry = { } ;
11297
@@ -138,7 +123,6 @@ async function sync() {
138123
139124 let valuesToDB = [ ]
140125
141- //console.log(entries)
142126 for ( let entry of entries )
143127 for ( let key in entry )
144128 for ( let subKeyAliasValue in entry [ key ] ) {
@@ -149,10 +133,6 @@ async function sync() {
149133 valuesToDB . push ( { value : subKeyAliasValue , visibility : entry [ key ] [ subKeyAliasValue ] } )
150134 }
151135
152- /*let valuesToDB = entries.map(obj => ({
153- visibility: obj[Object.keys(obj).pop()][Object.keys(obj[Object.keys(obj).pop()]).pop()],
154- value: Object.keys(obj[Object.keys(obj).pop()]).pop()
155- }))*/
156136 let keysToDB = entries . map ( obj => ( {
157137 key : Object . keys ( obj ) . pop ( ) || "flag_error_key_missing" ,
158138 visibility : obj [ Object . keys ( obj ) . pop ( ) ] [ Object . keys ( obj [ Object . keys ( obj ) . pop ( ) ] ) . pop ( ) ] ,
@@ -162,164 +142,6 @@ async function sync() {
162142 await Key . insertMany ( keysToDB )
163143 await Value . insertMany ( valuesToDB )
164144
165-
166- /*
167- let entries = Object.entries(minioWriter.entries)
168- entries = entries.map(entry => ({ [entry[0]]: [entry[1]] }))
169- try {
170- if (entries.length > 0) await Entries.insertMany(entries);
171- }
172- catch (error) {
173- if (!error?.errorResponse?.message?.includes("Document can't have"))
174- log(error)
175- else
176- try {
177- for (let entry of entries)
178- for (let key in entry)
179- for (let value in entry[key])
180- entry[key] = {
181- [entry[key][value.replace(/\$/g, '')]]: JSON.parse(JSON.stringify(entry[key][value]))
182- }
183- await Entries.insertMany(entries)
184- }
185- catch (error) {
186- log("There are problems inserting object in mongo DB")
187- log(error)
188- }
189- }
190-
191- let entries = Object.entries(minioWriter.entries)
192- entries = entries.map(entry => ({ [entry[0]]: entry[1] }))
193- try {
194- if (entries.length > 0) await Entries.insertMany(entries);
195- }
196- catch (error) {
197- if (!error?.errorResponse?.message?.includes("Document can't have"))
198- log(error)
199- else
200- try {
201- for (let entry of entries)
202- for (let key in entry)
203- for (let nestedKey in entry[key])
204- entry[key] = {
205- [entry[key][nestedKey.replace(/\$/g, '')]]: JSON.parse(JSON.stringify(entry[key][nestedKey]))
206- }
207- await Entries.insertMany(entries)
208- }
209- catch (error) {
210- log("There are problems inserting object in mongo DB")
211- log(error)
212- }
213- }
214-
215- let entries = Object.entries(minioWriter.entries).map(([key, value]) => ({ [key]: value }));
216- try {
217- if (entries.length > 0) await Entries.insertMany(entries);
218- } catch (error) {
219- if (!error?.errorResponse?.message?.includes("Document can't have")) {
220- log(error);
221- } else {
222- try {
223- entries = entries.map(entry => {
224- let fixedEntry = {};
225- for (let key in entry) {
226- let sanitizedKey = key.replace(/\$/g, '');
227- fixedEntry[sanitizedKey] = entry[key];
228- }
229- return fixedEntry;
230- });
231-
232- await Entries.insertMany(entries);
233- } catch (error) {
234- log("There are problems inserting object in MongoDB");
235- log(error);
236- }
237- }
238- }*/
239-
240-
241- /*
242- const existingValues = (await Value.find({ value: { $in: minioWriter.entities.values.map(v => v.value) } }))//.map(v => v.value);
243- const existingKeys = (await Key.find({ key: { $in: minioWriter.entities.keys.map(k => k.key) } }))//.map(k => k.key); //{ key: 1, _id: 0 }
244- const existingValuesMap = new Map();
245- existingValues.forEach(v => {
246- if (!existingValuesMap.has(v.name)) {
247- existingValuesMap.set(v.name, new Set());
248- }
249- existingValuesMap.get(v.name).add(v.value);
250- });
251- const uniqueValues = existingValues[0] ? minioWriter.entities.values.filter(entry => !existingValuesMap.has(entry.name) || !existingValuesMap.get(entry.name).has(entry.value)) : minioWriter.entities.values;
252- try {
253- if (uniqueValues.length > 0) await Value.insertMany(uniqueValues);
254- }
255- catch (error) {
256- if (!error?.errorResponse?.message?.includes("Document can't have"))
257- log(error)
258- else
259- try {
260- await Value.insertMany(uniqueValues.map(v => ({ value: v.value.replace(/\$/g, '') })))
261- }
262- catch (error) {
263- log("There are problems inserting object in mongo DB")
264- log(error)
265- }
266- }
267- const existingKeysMap = new Map();
268- existingKeys.forEach(k => {
269- if (!existingKeysMap.has(k.name)) {
270- existingKeysMap.set(k.name, new Set());
271- }
272- existingKeysMap.get(k.name).add(k.key);
273- });
274- const uniqueKeys = existingKeys[0] ? minioWriter.entities.keys.filter(entry => !existingKeysMap.has(entry.name) || !existingKeysMap.get(entry.name).has(entry.key)) : minioWriter.entities.keys;
275- try {
276- if (uniqueKeys.length > 0) await Key.insertMany(uniqueKeys);
277- }
278- catch (error) {
279- if (!error?.errorResponse?.message?.includes("Document can't have"))
280- log(error)
281- else
282- try {
283- await Key.insertMany(uniqueKeys.map(k => ({ key: k.key.replace(/\$/g, '') })))
284- }
285- catch (error) {
286- log("There are problems inserting object in mongo DB")
287- log(error)
288- }
289- }
290-
291- const existingEntriesMap = new Map();
292- existingEntries.forEach(e => {
293- if (!existingEntriesMap.has(e.key)) {
294- existingEntriesMap.set(e.key, { values: new Set(), names: new Set() });
295- }
296- existingEntriesMap.get(e.key).values.add(e.value);
297- existingEntriesMap.get(e.key).names.add(e.name);
298- });
299- const uniqueEntries = existingEntries[0]
300- ? minioWriter.entities.entries.filter(entry => {
301- const entryMap = existingEntriesMap.get(entry.key);
302- return (
303- !entryMap || // Se non esiste una voce con quella 'key', è unica
304- (!entryMap.values.has(entry.value) && !entryMap.names.has(entry.name)) // Se il valore o il nome non esistono, è unica
305- );
306- })
307- : minioWriter.entities.entries;
308- try {
309- if (uniqueEntries.length > 0) await Entries.insertMany(uniqueEntries);
310- }
311- catch (error) {
312- if (!error?.errorResponse?.message?.includes("Document can't have"))
313- log(error)
314- else
315- try {
316- await Entries.insertMany(uniqueEntries.map(e => ({ key: e.key.replace(/\$/g, ''), value: e.value.replace(/\$/g, '') })))
317- }
318- catch (error) {
319- log("There are problems inserting object in mongo DB")
320- log(error)
321- }
322- }*/
323145 syncing = false
324146 logger . info ( "Syncing finished" )
325147 console . info ( "Syncing finished" )
0 commit comments