I'm overriding the BeforeSave
in CloudCode
for Parse.com
.
This is what I see in the logs
:
Input: {"original":null,"update":{"password":"5428","phone_number":"56858","ACL":{"T1pXElsPPT":{"read":true,"write":true}},"config":"{}","creator":"T1pXElsPPT","name":"quarta prova"}}
Result: Update changed to {"config":"{}","creator":"T1pXElsPPT","name":"quarta prova","password":"5428","phone_number":"56858","ACL":{"T1pXElsPPT":{"read":true,"write":true}}}
I need to check the BeforeSave
only if the user is creating a new
object, not when he's updating
an old
one. This is what I've done so far:
Parse.Cloud.beforeSave("tracker", function(request, response) {
var spaces = availableSpace(request.user.id);
if (request.original != undefined && request.original === null) {
if (spaces == 0) {
response.error("No available spaces");
} else if (spaces >= 1) {
response.success();
} else if (spaces < 0) {
response.error("Lookup error");
}
} else {
response.success();
}
});
But it seems that original
is not in the request object (so it's undefined, always leading to a response.success();
)
Is there a way to check for original
or another way to check if this is an insert
or an update
?
You can use Parse.Object.isNew()
Parse.Cloud.beforeSave("tracker", function(request, response) {
var spaces = availableSpace(request.user.id);
if (request.object.isNew()) {
if (spaces === 0) {
response.error("No available spaces");
} else if (spaces >= 1) {
response.success();
} else if (spaces < 0) {
response.error("Lookup error");
}
} else {
response.success();
}
});