I'm trying to delete images off the server that's been there for more than 1 day, but for some reason it only deletes 20 images even though I set the limit to 1000.
Here's the code:
Parse.Cloud.job("deleteImages", function(request, status) {
Parse.Cloud.useMasterKey();
//Get yesterday
var ts = Math.round(new Date().getTime() / 1000);
var tsYesterday = ts - (24 * 3600);
var dateYesterday = new Date(tsYesterday*1000);
//Query with limit 1000
var query = new Parse.Query("image");
query.lessThan("createdAt", dateYesterday);
query.limit(1000);
query.find({
success: function(result) {
Parse.Object.destroyAll(result, {
success: function() {
status.success("Delete job completed");
console.log("Success");
},
error: function(error) {
if (error.code == Parse.Error.AGGREGATE_ERROR) {
for (var i = 0; i < error.errors.length; i++) {
console.log("Couldn't delete " + error.errors[i].object.id +
"due to " + error.errors[i].message);
status.error("Delete error :" + error);
}
} else {
status.error("Delete error :" + error);
console.log("Delete aborted because of " + error.message);
}
},
});
status.success("Delete job completed");
},
error: function(error) {
status.error("Error in delete query error: " + error);
alert('Error in delete query');
}
});
});
Any help would be greatly appriciated! Thanks.
For anyone else experiencing the same issue, the solution was really weird and I don't understand why it works. However, by removing the status.success() from the code entirely seems to get the job done. I get an error saying " Failed with: success/error was not called" yet it still deletes 1000 images.
Parse.Cloud.job("deleteImages", function(request, status) {
Parse.Cloud.useMasterKey();
//Get yesterday
var ts = Math.round(new Date().getTime() / 1000);
var tsYesterday = ts - (24 * 3600);
var dateYesterday = new Date(tsYesterday*1000);
//Query with limit 1000
var query = new Parse.Query("image");
query.lessThan("createdAt", dateYesterday);
query.limit(1000);
query.find({
success: function(result) {
Parse.Object.destroyAll(result, {
success: function() {
console.log("Success");
},
error: function(error) {
if (error.code == Parse.Error.AGGREGATE_ERROR) {
for (var i = 0; i < error.errors.length; i++) {
console.log("Couldn't delete " + error.errors[i].object.id +
"due to " + error.errors[i].message);
}
} else {
console.log("Delete aborted because of " + error.message);
}
}
});
},
error: function(error) {
status.error("Error in delete query error: " + error);
}
});
});