Parse.Cloud.job("checkNotify", function(request, status) {
var promises = [];
for (var i = 0; i < 10; ++i) {
var query = new Parse.Query(Parse.Installation);
query.equalTo('channels', 'WatchList');
query.equalTo('deviceType', 'ios');
query.equalTo('notificationGroup', i+1);
// spread alerts between 5 minute intervals
var pushTime = new Date();
pushTime.setMinutes(pushTime.getMinutes() + (5*i));
pushTime.setSeconds(pushTime.getSeconds() + 5); // add 5 seconds so the push isn't sent in the past for the first wave
// expire in 1 day
var expirationTime = new Date();
expirationTime.setDate(pushTime.getDate() + 1);
var promise = Parse.Push.send({
where: query,
push_time: pushTime,
expiration_time: expirationTime,
data: {
reason: "CheckWatch",
sound: "",
"content-available": 1
}
}, { useMasterKey: true });
promises.push(promise);
}
Parse.Promise.when(promises).then(
// success
function() {
status.success("Sucessfully sent out push to all groups.");
},
function(error) {
status.error("Error sending push notifications " + error.message);
});
});