Skip to content

Instantly share code, notes, and snippets.

@pegurov
Created January 20, 2016 11:03
Show Gist options
  • Save pegurov/9e835820ab6d762dfc54 to your computer and use it in GitHub Desktop.
Save pegurov/9e835820ab6d762dfc54 to your computer and use it in GitHub Desktop.
Parse.Cloud.beforeSave("Order", function(request, response) {
if (!request.object.get("creatorPayedForTargetCount")) {
request.object.set("creatorPayedForTargetCount", 0);
}
var targetLikes = request.object.get("targetCount");
var payedAmountOfLikes = request.object.get("creatorPayedForTargetCount");
if (payedAmountOfLikes < targetLikes) {
var creatorHash = request.object.get("creator");
console.log("creator: " + creatorHash);
console.log("creator type " + typeof(creatorHash));
var creatorId = creatorHash.get("objectId");
console.log("0. creatorId " + creatorId);
// var User = Parse.Object.extend("User");
// var query = new Parse.Query(User);
var query = new Parse.Query(Parse.User);
query.equalTo("objectId", creatorId);
query.get({
success: function(creator) {
// need to subtract coins from user
var creatorBalance = creator.get("coins");
var likesToPay = targetLikes - payedAmountOfLikes;
Parse.Config.get().then(function(config) {
var likePrice = config.get("likePrice");
console.log("1. creatorBalance " + creatorBalance);
console.log("2. likesToPay " + likesToPay);
console.log("3. likePrice " + likePrice);
var newBalance = creatorBalance - (likesToPay * likePrice);
console.log("user new newBalance " + newBalance);
// console.log("before creator changed");
// console.log(creator);
// creator.set("coins", newBalance);
// console.log("after creator changed");
// console.log(creator);
creator.save({
coins: newBalance
}, {
success: function(creator) {
request.object.set("creatorPayedForTargetCount", targetLikes);
request.object.set("creator", creator);
response.success();
},
error: function(creator, error) {
response.error("could not save creator");
}
});
}, function(error) {
response.error("unable to get fresh price for like");
});
},
error: function() {
var message = "unable to get creator" + creatorId
response.error(message);
}
});
} else {
response.success();
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment