Closed diegohaz closed 9 years ago
Ou também assim, só que ele vai retornar no response o usuário em vez do pedido.
// Item exists? If not, create it
query.first().then(function(result) {
if (result) {
item = result;
return Parse.Promise.as(item);
} else {
// Capitalize item name
itemName = itemName.charAt(0).toUpperCase() + itemName.slice(1);
item.set('name', itemName);
item.set('nameLowercase', itemName.toLowerCase());
return item.save();
}
}).then(function(item) {
// Create request
var req = new Parse.Object('Request');
req.set('author', user);
req.set('item', item);
req.set('open', false);
req.set('expired', false);
return req.save();
}).then(function(req) {
// Decrement requests limit from user
user.increment('requestsLimit', -1);
return user.save();
}).then(response.success, response.error);
});
Na verdade, é tudo culpa do beforeSave
no usuário, que está sempre resetando os campos.
https://github.com/diegohaz/local-sharing-parse/blob/8cb7ad4993e5150573ba9faf569d8232b28a31fc/cloud/main.js#L17-L21
O
User.requestsLimit
se mantém em 3 sempre. Acredito que isso seja porque oresponse.success()
é chamado antes douser.save()
ser concluído, que também deve ser o problema do #6 . Uma possível solução pode ser: