1const fixTelemetrys = awsCallback => {
2const arr = [];
3Logger.log('fixTelemetrys');
4const telemetryNumbers = ["TLX1"]
5const fullFlow = new Promise((resolve, reject) => {
6 const promiseArrayOfItems = [];
7 telemetryNumbers.forEach(telemetryNr => {
8 const query = {
9 telemetryNumber: telemetryNr,
10 };
11 promiseArrayOfItems.push(
12 TelemetryModel.findOne(query)
13 .then(telemetry => {
14 if (telemetry.missingField) {
15 return[telemetry];
16 } else {
17 const processor = ProcessorModel.find({telemetrys: telemetry._id})
18 .populate('accountId')
19 return[telemetry, processor];
20 }
21 })
22 .spread((telemetry, processor) => {
23 if(processor && processor.length && processor[0].accountId){
24 const { missingField } = processor[0].accountId;
25 if(missingField){
26 const telemetryUpdate = telemetry.update( {missingField: missingField} ).exec();
27 return [telemetryUpdate]
28 // console.log('updating telemetry',telemetry._id, missingField )
29 // return [telemetry]
30 } else {
31 throw new Error('No missingField on the account')
32 }
33 } else {
34 return [telemetry]
35 }
36 })
37 .then(telemetry => {
38 // console.log('end of flow', telemetry)
39 })
40 .catch(err => {
41 console.log(err);
42 })
43 );
44 });
45
46 // Wait for all
47 Promise.all(promiseArrayOfItems)
48 .then(values => {
49 Logger.log('All Promises finished');
50 resolve(values);
51 })
52 .catch(err => {
53 Logger.error('All Promises failed', err);
54 reject(new Error(err));
55 });
56});Created on 10/17/2018