Skip to content

Instantly share code, notes, and snippets.

@aBuder
Last active May 30, 2018 06:36
Show Gist options
  • Save aBuder/d1f1b2fefd46318de76929059dfdb724 to your computer and use it in GitHub Desktop.
Save aBuder/d1f1b2fefd46318de76929059dfdb724 to your computer and use it in GitHub Desktop.
Cloud Functions
// Cloud Function to delete one ore more User object
//
// {
// "objectIds": ["mmspeGP9Ke"]
// }
//
//
Parse.Cloud.define('deleteUser', function(request, response) {
request.log.info('CloudFunction deleteUser : called params - ' + JSON.stringify(request.params));
request.log.info('CloudFunction deleteUser : called user - ' + JSON.stringify(request.user));
// check if an user is call the cloud function
// if no user is called, so throw an error
if (request.user == null) {
response.error("Unauthorized");
}
// check if ojectIds set in params
if (request.params.objectIds == null) {
response.error('No objectIds set in body');
}
var objectIds = request.params.objectIds;
objectIds.forEach(objectId => {
var query = new Parse.Query(Parse.User);
query.get(objectId, {
useMasterKey: true,
success: function(user) {
request.log.info('CloudFunction deleteUser : found user - ' + JSON.stringify(user));
// The object was retrieved successfully.
user.destroy({
useMasterKey: true,
success: function(user) {
request.log.info('CloudFunction deleteUser : delete user - ' + JSON.stringify(user));
},
error: function(user, error) {
request.log.info('CloudFunction deleteUser : error while delete user - ' + JSON.stringify(error));
}
});
},
error: function(object, error) {
request.log.info('CloudFunction deleteUser : could not find user with objectId - ' + objectId);
request.log.info('CloudFunction deleteUser : could not find user error - ' + JSON.stringify(error));
}
});
// var user = new Parse.User();
// user.destroy
});
response.success();
});
Parse.Cloud.define('updateUser', function(request, response) {
request.log.info('CloudFunction updateUser : called params - ' + JSON.stringify(request.params));
request.log.info('CloudFunction updateUser : called user - ' + JSON.stringify(request.user));
// check if an user is call the cloud function
// if no user is called, so throw an error
if (request.user == null) {
response.error("Unauthorized");
}
// TODO: Check if user is admin
// TODO: Bei update auf User Admin Felder Email und username nicht änderbar
// Passwort ändern nur als Admin
// role:
// check if property ACL is set. If
// it is set, than delete that, because
// parser server throw an error
if (request.params && request.params.ACL) {
delete request.params.ACL;
request.log.info('CloudFunction updateUser : delete ACL property params - ' + JSON.stringify(request.params));
}
// fetch the user with objectId and update properties of
// user, for fetch and save the master key would be used
let objectId = request.params.objectId;
var query = new Parse.Query(Parse.User);
query.equalTo('objectId', objectId);
query.first({
useMasterKey: true,
success: function(object) {
object.save(request.params, {
useMasterKey: true,
success: function(user) {
request.log.info('CloudFunction updateUser : success ');
response.success(user);
},
error: function(user, error) {
request.log.info('CloudFunction updateUser : error ');
request.log.error(error);
response.error(error);
}
});
},
error: function(error) {
alert("CloudFunction updateUser : " + error.code + " " + error.message);
response.error("Error");
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment