Created
January 20, 2016 11:03
-
-
Save pegurov/9e835820ab6d762dfc54 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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