I am trying to write a simple Cloud Code function on Parse Server that updates a user's paramater. My function is as follows:
Parse.Cloud.define("updateUser", function(request, response) {
var query = new Parse.Query("User");
query.equalTo("username", request.params.username);
var type = request.params.type;
query.first({
success: function (user) {
user.set("userType", type);
user.save(null, {
success: function (object) {
response.success("SUCCESS");
}, error: function (object, error) {
response.error(error);
}
});
}, error: function (error) {
response.error(error);
}
});
});
And this is how I call the function server-side from an Express Node.js app:
Parse.Cloud.run("updateUser", { useMasterKey: true, username: req.body.username, type: req.body.type }, {
success: function(final) {
res.send({ res: "SUCCESS" });
}, error: function(error) {
res.send({ res: error });
}
});
The first query returns a user, but the subsequent save throws a "206: cannot modify user" error.
This function worked great on our previous platform, but now is causing issues on Parse Server.
Any help is greatly appreciated.