@dhyasama/totem-models 8.30.0 → 8.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/Financials.js +117 -102
  2. package/package.json +1 -1
package/lib/Financials.js CHANGED
@@ -293,32 +293,37 @@ module.exports = function(mongoose, config) {
293
293
  }
294
294
  });
295
295
 
296
+ query.populate('organization', 'name logoUrl');
297
+ query.populate('customer', 'name logoUrl customer.totemUrl');
298
+
296
299
  query.exec(function(err, result) {
297
300
 
298
301
  if (err) { return cb(err, null); }
299
302
 
300
303
  var results = [];
301
304
 
302
- var snapshots = _.pluck(result || [], 'snapshots');
303
- snapshots = _.flatten(snapshots);
305
+ _.each(result, function(financial) {
304
306
 
305
- _.each(snapshots, function(snapshot) {
307
+ _.each(financial.snapshots, function(snapshot) {
306
308
 
307
- var hasRecipients = snapshot.notifications.company.sendTo.length > 0;
308
- var hasUnsentSendOnLessThanNow = snapshot.notifications.company.initial.sendOn < now && !snapshot.notifications.company.initial.sentOn;
309
+ var hasRecipients = snapshot.notifications.company.sendTo.length > 0;
310
+ var hasUnsentSendOnLessThanNow = snapshot.notifications.company.initial.sendOn < now && !snapshot.notifications.company.initial.sentOn;
309
311
 
310
- if(hasRecipients && hasUnsentSendOnLessThanNow) {
312
+ if(hasRecipients && hasUnsentSendOnLessThanNow) {
311
313
 
312
- var recipients = snapshot.notifications.company.sendTo.map(function(sendTo) {
313
- return sendTo.email;
314
- }).join(',');
314
+ var recipients = snapshot.notifications.company.sendTo.map(function(sendTo) {
315
+ return sendTo.email;
316
+ }).join(',');
315
317
 
316
- results.push({
317
- 'uuid': snapshot.uuid,
318
- 'recipients': recipients
319
- });
318
+ results.push({
319
+ 'snapshot': snapshot,
320
+ 'customer': snapsot.customer,
321
+ 'organization': snapshot.organization
322
+ });
320
323
 
321
- }
324
+ }
325
+
326
+ });
322
327
 
323
328
  });
324
329
 
@@ -352,36 +357,41 @@ module.exports = function(mongoose, config) {
352
357
  }
353
358
  });
354
359
 
360
+ query.populate('organization', 'name logoUrl');
361
+ query.populate('customer', 'name logoUrl customer.totemUrl');
362
+
355
363
  query.exec(function(err, result) {
356
364
 
357
365
  if (err) { return cb(err, null); }
358
366
 
359
367
  var results = [];
360
368
 
361
- var snapshots = _.pluck(result || [], 'snapshots');
362
- snapshots = _.flatten(snapshots);
369
+ _.each(result, function(financial) {
363
370
 
364
- _.each(snapshots, function(snapshot) {
371
+ _.each(financial.snapshots, function(snapshot) {
365
372
 
366
- var hasRecipients = snapshot.notifications.company.sendTo.length > 0;
367
- var hasUnsentSendOnLessThanNow = _.find(snapshot.notifications.company.reminders, function(reminder) {
368
- return reminder.sendOn < now && !reminder.sentOn;
369
- });
370
- var hasBeenSubmitted = snapshot.submittedOn;
371
- var hasBeenRejected = snapshot.rejection;
373
+ var hasRecipients = snapshot.notifications.company.sendTo.length > 0;
374
+ var hasUnsentSendOnLessThanNow = _.find(snapshot.notifications.company.reminders, function(reminder) {
375
+ return reminder.sendOn < now && !reminder.sentOn;
376
+ });
377
+ var hasBeenSubmitted = snapshot.submittedOn;
378
+ var hasBeenRejected = snapshot.rejection;
372
379
 
373
- if(hasRecipients && hasUnsentSendOnLessThanNow && ((!hasBeenSubmitted) || (hasBeenSubmitted && hasBeenRejected))) {
380
+ if(hasRecipients && hasUnsentSendOnLessThanNow && ((!hasBeenSubmitted) || (hasBeenSubmitted && hasBeenRejected))) {
374
381
 
375
- var recipients = snapshot.notifications.company.sendTo.map(function(sendTo) {
376
- return sendTo.email;
377
- }).join(',');
382
+ var recipients = snapshot.notifications.company.sendTo.map(function(sendTo) {
383
+ return sendTo.email;
384
+ }).join(',');
378
385
 
379
- results.push({
380
- 'uuid': snapshot.uuid,
381
- 'recipients': recipients
382
- });
386
+ results.push({
387
+ 'snapshot': snapshot,
388
+ 'customer': snapsot.customer,
389
+ 'organization': snapshot.organization
390
+ });
383
391
 
384
- }
392
+ }
393
+
394
+ });
385
395
 
386
396
  });
387
397
 
@@ -408,36 +418,41 @@ module.exports = function(mongoose, config) {
408
418
  }
409
419
  });
410
420
 
421
+ query.populate('organization', 'name logoUrl');
422
+ query.populate('customer', 'name logoUrl customer.totemUrl');
423
+
411
424
  query.exec(function(err, result) {
412
425
 
413
426
  if (err) { return cb(err, null); }
414
427
 
415
428
  var results = [];
416
429
 
417
- var snapshots = _.pluck(result || [], 'snapshots');
418
- snapshots = _.flatten(snapshots);
430
+ _.each(result, function(financial) {
419
431
 
420
- _.each(snapshots, function(snapshot) {
432
+ _.each(financial.snapshots, function(snapshot) {
421
433
 
422
- var hasRecipients = snapshot.notifications.company.sendTo.length > 0;
423
- var hasUnsentSendOnLessThanNow = _.find(snapshot.notifications.company.rejections, function(rejection) {
424
- return rejection.sendOn < now && !rejection.sentOn;
425
- });
426
- var hasBeenSubmitted = snapshot.submittedOn;
427
- var hasBeenRejected = snapshot.rejection;
434
+ var hasRecipients = snapshot.notifications.company.sendTo.length > 0;
435
+ var hasUnsentSendOnLessThanNow = _.find(snapshot.notifications.company.rejections, function(rejection) {
436
+ return rejection.sendOn < now && !rejection.sentOn;
437
+ });
438
+ var hasBeenSubmitted = snapshot.submittedOn;
439
+ var hasBeenRejected = snapshot.rejection;
428
440
 
429
- if(hasRecipients && hasUnsentSendOnLessThanNow && hasBeenSubmitted && hasBeenRejected) {
441
+ if(hasRecipients && hasUnsentSendOnLessThanNow && hasBeenSubmitted && hasBeenRejected) {
430
442
 
431
- var recipients = snapshot.notifications.company.sendTo.map(function(sendTo) {
432
- return sendTo.email;
433
- }).join(',');
443
+ var recipients = snapshot.notifications.company.sendTo.map(function(sendTo) {
444
+ return sendTo.email;
445
+ }).join(',');
434
446
 
435
- results.push({
436
- 'uuid': snapshot.uuid,
437
- 'recipients': recipients
438
- });
447
+ results.push({
448
+ 'snapshot': snapshot,
449
+ 'customer': snapsot.customer,
450
+ 'organization': snapshot.organization
451
+ });
439
452
 
440
- }
453
+ }
454
+
455
+ });
441
456
 
442
457
  });
443
458
 
@@ -463,39 +478,47 @@ module.exports = function(mongoose, config) {
463
478
  }
464
479
  });
465
480
 
481
+ query.populate('organization', 'name logoUrl');
482
+ query.populate('customer', 'name logoUrl customer.totemUrl');
483
+ query.populate('snapshots.notifications.stakeholders.sendTo.organization', 'name logoUrl customer.totemUrl');
484
+
466
485
  query.exec(function(err, result) {
467
486
 
468
487
  if (err) { return cb(err, null); }
469
488
 
470
489
  var results = [];
471
490
 
472
- var snapshots = _.pluck(result || [], 'snapshots');
473
- snapshots = _.flatten(snapshots);
491
+ async.each(result, function(financial, callback1) {
474
492
 
475
- async.each(snapshots, function(snapshot, callback1) {
493
+ async.each(financial.snapshots, function(snapshot, callback2) {
476
494
 
477
- async.each(snapshot.notifications.stakeholders, function(stakeholder, callback2) {
495
+ async.each(snapshot.notifications.stakeholders, function(stakeholder, callback3) {
478
496
 
479
- var hasEmail = stakeholder.sendTo && stakeholder.sendTo.email;
480
- var hasOrganization = stakeholder.sendTo && stakeholder.sendTo.organization;
481
- var hasUnsentSendOnLessThanNow = stakeholder.initial && stakeholder.initial.sendOn < now && !stakeholder.initial.sentOn;
497
+ var hasEmail = stakeholder.sendTo && stakeholder.sendTo.email;
498
+ var hasOrganization = stakeholder.sendTo && stakeholder.sendTo.organization;
499
+ var hasUnsentSendOnLessThanNow = stakeholder.initial && stakeholder.initial.sendOn < now && !stakeholder.initial.sentOn;
482
500
 
483
- if (!hasEmail || !hasOrganization || !hasUnsentSendOnLessThanNow) return callback2();
501
+ if (!hasEmail || !hasOrganization || !hasUnsentSendOnLessThanNow) return callback3();
484
502
 
485
- Account.findByEmail(stakeholder.sendTo.email, function(err, account) {
503
+ Account.findByEmail(stakeholder.sendTo.email, function(err, account) {
486
504
 
487
- var hasAccount = !_.isEmpty(account);
488
- var hasAccessToken = !_.isEmpty(account) && account.auth && (account.auth.google && account.auth.google.accessToken) || (account.auth.microsoft && account.auth.microsoft.accessToken);
505
+ var hasAccount = !_.isEmpty(account);
506
+ var hasAccessToken = !_.isEmpty(account) && account.auth && (account.auth.google && account.auth.google.accessToken) || (account.auth.microsoft && account.auth.microsoft.accessToken);
489
507
 
490
- if (!hasAccount || hasAccessToken) return callback2();
508
+ if (!hasAccount || hasAccessToken) return callback3();
491
509
 
492
- results.push({
493
- 'uuid': snapshot.uuid,
494
- 'recipients': stakeholder.sendTo.email
495
- });
510
+ results.push({
511
+ 'snapshot': snapshot,
512
+ 'stakeholder': stakeholder,
513
+ 'organization': snapshot.organization
514
+ });
515
+
516
+ return callback3();
496
517
 
497
- return callback2();
518
+ });
498
519
 
520
+ }, function (err) {
521
+ return callback2(err, results);
499
522
  });
500
523
 
501
524
  }, function (err) {
@@ -526,41 +549,49 @@ module.exports = function(mongoose, config) {
526
549
  }
527
550
  });
528
551
 
552
+ query.populate('organization', 'name logoUrl');
553
+ query.populate('customer', 'name logoUrl customer.totemUrl');
554
+ query.populate('snapshots.notifications.stakeholders.sendTo.organization', 'name logoUrl customer.totemUrl');
555
+
529
556
  query.exec(function(err, result) {
530
557
 
531
558
  if (err) { return cb(err, null); }
532
559
 
533
560
  var results = [];
534
561
 
535
- var snapshots = _.pluck(result || [], 'snapshots');
536
- snapshots = _.flatten(snapshots);
562
+ async.each(result, function(financial, callback1) {
537
563
 
538
- async.each(snapshots, function(snapshot, callback1) {
564
+ async.each(financial.snapshots, function(snapshot, callback2) {
539
565
 
540
- async.each(snapshot.notifications.stakeholders, function(stakeholder, callback2) {
566
+ async.each(snapshot.notifications.stakeholders, function(stakeholder, callback3) {
541
567
 
542
- var hasRecipients = stakeholder.sendTo && stakeholder.sendTo.length > 0;
543
- var hasOrganization = stakeholder.organization;
544
- var hasUnsentSendOnLessThanNow = _.find(stakeholder.reminders, function(reminder) {
545
- return reminder.sendOn < now && !reminder.sentOn;
546
- });
568
+ var hasRecipients = stakeholder.sendTo && stakeholder.sendTo.length > 0;
569
+ var hasOrganization = stakeholder.organization;
570
+ var hasUnsentSendOnLessThanNow = _.find(stakeholder.reminders, function(reminder) {
571
+ return reminder.sendOn < now && !reminder.sentOn;
572
+ });
547
573
 
548
- if (!hasRecipients || !hasOrganization || !hasUnsentSendOnLessThanNow) return callback1();
574
+ if (!hasRecipients || !hasOrganization || !hasUnsentSendOnLessThanNow) return callback3();
549
575
 
550
- Account.findByEmail(stakeholder.sendTo.email, function(err, account) {
576
+ Account.findByEmail(stakeholder.sendTo.email, function(err, account) {
551
577
 
552
- var hasAccount = !_.isEmpty(account);
553
- var hasAccessToken = !_.isEmpty(account) && account.auth && (account.auth.google && account.auth.google.accessToken) || (account.auth.microsoft && account.auth.microsoft.accessToken);
578
+ var hasAccount = !_.isEmpty(account);
579
+ var hasAccessToken = !_.isEmpty(account) && account.auth && (account.auth.google && account.auth.google.accessToken) || (account.auth.microsoft && account.auth.microsoft.accessToken);
554
580
 
555
- if (!hasAccount || hasAccessToken) return callback2();
581
+ if (!hasAccount || hasAccessToken) return callback3();
556
582
 
557
- results.push({
558
- 'uuid': snapshot.uuid,
559
- 'recipients': stakeholder.sendTo.email
560
- });
583
+ results.push({
584
+ 'snapshot': snapshot,
585
+ 'stakeholder': stakeholder,
586
+ 'organization': snapshot.organization
587
+ });
588
+
589
+ return callback3();
561
590
 
562
- return callback2();
591
+ });
563
592
 
593
+ }, function (err) {
594
+ return callback2(err, results);
564
595
  });
565
596
 
566
597
  }, function (err) {
@@ -587,21 +618,6 @@ module.exports = function(mongoose, config) {
587
618
 
588
619
  };
589
620
 
590
- Financials.statics.getToSend = function getToSend(uuid, cb) {
591
-
592
- var self = this;
593
-
594
- var query = self.findOne({
595
- 'snapshots.uuid': uuid
596
- });
597
-
598
- query.populate('organization', 'name logoUrl');
599
- query.populate('customer', 'name logoUrl customer.totemUrl');
600
-
601
- query.exec(cb);
602
-
603
- };
604
-
605
621
  Financials.statics.removeCustomerFinancials = function removeCustomerFinancials(customerId, cb) {
606
622
 
607
623
  // this is only used to wipe out financials created by the google sheet import process
@@ -640,7 +656,6 @@ module.exports = function(mongoose, config) {
640
656
 
641
657
  };
642
658
 
643
-
644
659
  ///////////////////////////////////////////////////////////////////////////////////////
645
660
  // HOOKS
646
661
  // Pre-save: fired on every document before it is saved
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhyasama/totem-models",
3
- "version": "8.30.0",
3
+ "version": "8.31.0",
4
4
  "author": "Jason Reynolds",
5
5
  "license": "UNLICENSED",
6
6
  "description": "Models for Totem platform",