@@ -7,7 +7,7 @@ const cryptoUtils = require('./cryptoUtils');
7
7
const GCMTimeToLiveMax = 4 * 7 * 24 * 60 * 60 ; // GCM allows a max of 4 weeks
8
8
const GCMRegistrationTokensMax = 1000 ;
9
9
10
- function GCM ( args ) {
10
+ export function GCM ( args ) {
11
11
if ( typeof args !== 'object' || ! args . apiKey ) {
12
12
throw new Parse . Error ( Parse . Error . PUSH_MISCONFIGURED ,
13
13
'GCM Configuration is invalid' ) ;
@@ -53,6 +53,10 @@ GCM.prototype.send = function(data, devices) {
53
53
}
54
54
// Generate gcm payload
55
55
let gcmPayload = generateGCMPayload ( data . data , timestamp , expirationTime ) ;
56
+ = === ===
57
+ // Generate gcm payload
58
+ let gcmPayload = generateGCMPayload ( data . data , null , null , data . expirationTime ) ;
59
+ > >>> >>> Refactoring GCM .
56
60
// Make and send gcm request
57
61
let message = new gcm . Message ( gcmPayload ) ;
58
62
@@ -107,17 +111,21 @@ GCM.prototype.send = function(data, devices) {
107
111
* @param {Number|undefined } expirationTime A number whose format is the Unix Epoch or undefined
108
112
* @returns {Object } A promise which is resolved after we get results from gcm
109
113
*/
110
- function generateGCMPayload ( coreData , timeStamp , expirationTime ) {
114
+ export function generateGCMPayload ( coreData , timeStamp , expirationTime ) {
115
+ timeStamp = timeStamp || Date . now ( ) ;
116
+
111
117
let payloadData = {
112
118
'time' : new Date ( timeStamp ) . toISOString ( ) ,
113
119
'data' : JSON . stringify ( coreData )
114
120
}
121
+
115
122
let payload = {
116
123
priority : 'normal' ,
117
124
data : payloadData
118
125
} ;
126
+
119
127
if ( expirationTime ) {
120
- // The timeStamp and expiration is in milliseconds but gcm requires second
128
+ // The timeStamp and expiration is in milliseconds but gcm requires second
121
129
let timeToLive = Math . floor ( ( expirationTime - timeStamp ) / 1000 ) ;
122
130
if ( timeToLive < 0 ) {
123
131
timeToLive = 0 ;
@@ -127,6 +135,7 @@ function generateGCMPayload(coreData, timeStamp, expirationTime) {
127
135
}
128
136
payload . timeToLive = timeToLive ;
129
137
}
138
+
130
139
return payload ;
131
140
}
132
141
@@ -148,4 +157,3 @@ if (typeof process !== 'undefined' && process.env.NODE_ENV === 'test') {
148
157
GCM . generateGCMPayload = generateGCMPayload ;
149
158
GCM . sliceDevices = sliceDevices ;
150
159
}
151
- module . exports = GCM ;
0 commit comments