Skip to content

Commit 4e3b558

Browse files
Added ability to add a validation function to a Cloud Code function
1 parent 522abdf commit 4e3b558

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

functions.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ var router = new PromiseRouter();
1010
function handleCloudFunction(req) {
1111
// TODO: set user from req.auth
1212
if (Parse.Cloud.Functions[req.params.functionName]) {
13+
// Run the validator for this function first
14+
if (Parse.Cloud.Validators[req.params.functionName]) {
15+
var result = Parse.Cloud.Validators[req.params.functionName](req.body);
16+
if (!result) {
17+
throw new Parse.Error(Parse.Error.SCRIPT_FAILED, 'Validation failed.');
18+
}
19+
}
20+
1321
return new Promise(function (resolve, reject) {
1422
var response = createResponseObject(resolve, reject);
1523
var request = {

index.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,17 @@ function ParseServer(args) {
113113

114114
function addParseCloud() {
115115
Parse.Cloud.Functions = {};
116+
Parse.Cloud.Validators = {};
116117
Parse.Cloud.Triggers = {
117118
beforeSave: {},
118119
beforeDelete: {},
119120
afterSave: {},
120121
afterDelete: {}
121122
};
122-
Parse.Cloud.define = function(functionName, handler) {
123+
124+
Parse.Cloud.define = function(functionName, handler, validationHandler) {
123125
Parse.Cloud.Functions[functionName] = handler;
126+
Parse.Cloud.Validators[functionName] = validationHandler;
124127
};
125128
Parse.Cloud.beforeSave = function(parseClass, handler) {
126129
var className = getClassName(parseClass);

0 commit comments

Comments
 (0)