1
- var mongoose = require ( 'mongoose' ) ;
1
+ const mongoose = require ( 'mongoose' ) ;
2
2
3
- var Item = mongoose . model ( 'Item' ) ;
4
- var CandidatesHelper = require ( '../controllers/candidates/candidatesHelper' ) ;
3
+ const Item = mongoose . model ( 'Item' ) ;
4
+ const CandidatesHelper = require ( '../controllers/candidates/candidatesHelper' ) ;
5
5
6
- var Device = require ( '../model/device' ) ;
6
+ const Device = require ( '../model/device' ) ;
7
7
8
- var logger = require ( 'log4js' ) . getLogger ( 'peterparker' ) ;
8
+ const logger = require ( 'log4js' ) . getLogger ( 'peterparker' ) ;
9
9
10
- var utils = require ( '../controllers/utils/utils' ) ;
10
+ const utils = require ( '../controllers/utils/utils' ) ;
11
11
12
- var constants = require ( '../config/constants' ) ;
12
+ const constants = require ( '../config/constants' ) ;
13
13
14
- var pushSender = require ( './push-sender' ) ;
14
+ const pushSender = require ( './push-sender' ) ;
15
15
16
- var i18n = require ( "i18n" ) ;
16
+ const i18n = require ( "i18n" ) ;
17
17
18
- var moment = require ( 'moment' ) ;
19
- var Q = require ( 'q' ) ;
20
- var _ = require ( 'underscore' ) ;
18
+ const moment = require ( 'moment' ) ;
19
+ const Q = require ( 'q' ) ;
20
+ const _ = require ( 'underscore' ) ;
21
21
22
22
module . exports = {
23
23
pushNewItems : pushNewItems
@@ -29,28 +29,30 @@ function pushNewItems() {
29
29
return ;
30
30
}
31
31
32
- var now = new Date ( ) ;
33
- var sinceYesterday = moment ( now ) . add ( - 1 , 'd' ) . toDate ( ) ;
32
+ const now = new Date ( ) ;
33
+ const todayAt8am = moment ( ) . hours ( 8 ) . minutes ( 0 ) . seconds ( 0 ) . toDate ( ) ;
34
34
35
- var query = {
35
+ let sinceWhen = moment ( now ) . isBefore ( todayAt8am ) ? moment ( now ) . add ( - 8 , 'h' ) . toDate ( ) : moment ( now ) . add ( - 1 , 'h' ) . toDate ( ) ;
36
+
37
+ const query = {
36
38
status : 'published' ,
37
- createdAt : { $gte : sinceYesterday , $lte : now }
39
+ createdAt : { $gt : sinceWhen , $lte : now }
38
40
} ;
39
41
40
42
Item . find ( query ) . lean ( ) . exec ( function ( err , items ) {
41
43
if ( err ) {
42
44
logger . info ( 'error' , 'Error while looking for notifications.' ) ;
43
45
} else {
44
46
if ( utils . isNotEmpty ( items ) ) {
45
- var promises = new Array ( ) ;
47
+ const promises = new Array ( ) ;
46
48
47
- for ( var i = 0 , len = items . length ; i < len ; i ++ ) {
49
+ for ( let i = 0 , len = items . length ; i < len ; i ++ ) {
48
50
promises . push ( targetUsersAndSendPushNotification ( items [ i ] ) ) ;
49
51
}
50
52
51
53
Promise . all ( promises ) . then ( function ( values ) {
52
54
53
- var uniqueUsers = _ . map ( _ . groupBy ( _ . flatten ( values ) , function ( doc ) {
55
+ const uniqueUsers = _ . map ( _ . groupBy ( _ . flatten ( values ) , function ( doc ) {
54
56
return doc . _id ;
55
57
} ) , function ( grouped ) {
56
58
return grouped [ 0 ] ;
@@ -60,7 +62,7 @@ function pushNewItems() {
60
62
61
63
logger . info ( "Gonna try to send new items push notifications to " + uniqueUsers . length + " users." ) ;
62
64
63
- for ( var i = 0 , len = uniqueUsers . length ; i < len ; i ++ ) {
65
+ for ( let i = 0 , len = uniqueUsers . length ; i < len ; i ++ ) {
64
66
sendPushNotification ( uniqueUsers [ i ] ) ;
65
67
}
66
68
}
@@ -71,11 +73,11 @@ function pushNewItems() {
71
73
}
72
74
73
75
function targetUsersAndSendPushNotification ( item ) {
74
- var deferred = Q . defer ( ) ;
76
+ const deferred = Q . defer ( ) ;
75
77
76
- var candidatesHelper = new CandidatesHelper ( ) ;
78
+ const candidatesHelper = new CandidatesHelper ( ) ;
77
79
78
- var query = {
80
+ let query = {
79
81
longitude : item . address . location . coordinates [ 0 ] ,
80
82
latitude : item . address . location . coordinates [ 1 ] ,
81
83
type : item . attributes . type ,
@@ -109,15 +111,15 @@ function targetUsersAndSendPushNotification(item) {
109
111
query [ "availableend" ] = '' + item . attributes . availability . end ;
110
112
}
111
113
112
- var likes = _ . map ( item . likes , function ( doc ) {
114
+ let likes = _ . map ( item . likes , function ( doc ) {
113
115
return doc . user ;
114
116
} ) ;
115
117
116
- var dislikes = _ . map ( item . dislikes , function ( doc ) {
118
+ const dislikes = _ . map ( item . dislikes , function ( doc ) {
117
119
return doc . user ;
118
120
} ) ;
119
121
120
- var userIds = new Array ( ) ;
122
+ let userIds = new Array ( ) ;
121
123
userIds . push ( item . user ) ;
122
124
123
125
if ( utils . isNotEmpty ( likes ) ) {
@@ -151,7 +153,7 @@ function processNofication(user, device) {
151
153
152
154
if ( utils . isNotNull ( user . userParams ) && utils . isNotNull ( user . userParams . appSettings ) && user . userParams . appSettings . pushNotifications ) {
153
155
154
- var msgText = getPushNotificationText ( user , device ) ;
156
+ const msgText = getPushNotificationText ( user , device ) ;
155
157
156
158
pushSender . pushNotification ( msgText , device ) . then ( function ( data ) {
157
159
// Coolio all right here
@@ -165,7 +167,7 @@ function processNofication(user, device) {
165
167
166
168
function getPushNotificationText ( user , device ) {
167
169
168
- var language = ! utils . isStringEmpty ( device . language ) ? device . language : 'en' ;
170
+ const language = ! utils . isStringEmpty ( device . language ) ? device . language : 'en' ;
169
171
170
172
return i18n . __ ( { phrase : "ITEMS.NEW_ITEMS" , locale : language } , { who : user . facebook . firstName } ) ;
171
173
}
0 commit comments