Cloud Function validation now uses the complete request instead of just the request parameters
This commit is contained in:
@@ -587,7 +587,7 @@ describe('miscellaneous', function() {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('test cloud function query parameters', (done) => {
|
it('test cloud function query parameters', (done) => {
|
||||||
Parse.Cloud.define('echoParams', (req, res) => {
|
Parse.Cloud.define('echoParams', (req, res) => {
|
||||||
res.success(req.params);
|
res.success(req.params);
|
||||||
@@ -621,8 +621,8 @@ describe('miscellaneous', function() {
|
|||||||
// Register a function with validation
|
// Register a function with validation
|
||||||
Parse.Cloud.define('functionWithParameterValidation', (req, res) => {
|
Parse.Cloud.define('functionWithParameterValidation', (req, res) => {
|
||||||
res.success('works');
|
res.success('works');
|
||||||
}, (params) => {
|
}, (request) => {
|
||||||
return params.success === 100;
|
return request.params.success === 100;
|
||||||
});
|
});
|
||||||
|
|
||||||
Parse.Cloud.run('functionWithParameterValidation', {"success":100}).then((s) => {
|
Parse.Cloud.run('functionWithParameterValidation', {"success":100}).then((s) => {
|
||||||
@@ -638,8 +638,8 @@ describe('miscellaneous', function() {
|
|||||||
// Register a function with validation
|
// Register a function with validation
|
||||||
Parse.Cloud.define('functionWithParameterValidationFailure', (req, res) => {
|
Parse.Cloud.define('functionWithParameterValidationFailure', (req, res) => {
|
||||||
res.success('noway');
|
res.success('noway');
|
||||||
}, (params) => {
|
}, (request) => {
|
||||||
return params.success === 100;
|
return request.params.success === 100;
|
||||||
});
|
});
|
||||||
|
|
||||||
Parse.Cloud.run('functionWithParameterValidationFailure', {"success":500}).then((s) => {
|
Parse.Cloud.run('functionWithParameterValidationFailure', {"success":500}).then((s) => {
|
||||||
|
|||||||
@@ -10,10 +10,15 @@ var router = new PromiseRouter();
|
|||||||
function handleCloudFunction(req) {
|
function handleCloudFunction(req) {
|
||||||
if (Parse.Cloud.Functions[req.params.functionName]) {
|
if (Parse.Cloud.Functions[req.params.functionName]) {
|
||||||
|
|
||||||
const params = Object.assign({}, req.body, req.query);
|
var request = {
|
||||||
|
params: Object.assign({}, req.body, req.query),
|
||||||
|
master: req.auth && req.auth.isMaster,
|
||||||
|
user: req.auth && req.auth.user,
|
||||||
|
installationId: req.info.installationId
|
||||||
|
};
|
||||||
|
|
||||||
if (Parse.Cloud.Validators[req.params.functionName]) {
|
if (Parse.Cloud.Validators[req.params.functionName]) {
|
||||||
var result = Parse.Cloud.Validators[req.params.functionName](params);
|
var result = Parse.Cloud.Validators[req.params.functionName](request);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
throw new Parse.Error(Parse.Error.SCRIPT_FAILED, 'Validation failed.');
|
throw new Parse.Error(Parse.Error.SCRIPT_FAILED, 'Validation failed.');
|
||||||
}
|
}
|
||||||
@@ -21,12 +26,6 @@ function handleCloudFunction(req) {
|
|||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
var response = createResponseObject(resolve, reject);
|
var response = createResponseObject(resolve, reject);
|
||||||
var request = {
|
|
||||||
params: params,
|
|
||||||
master: req.auth && req.auth.isMaster,
|
|
||||||
user: req.auth && req.auth.user,
|
|
||||||
installationId: req.info.installationId
|
|
||||||
};
|
|
||||||
Parse.Cloud.Functions[req.params.functionName](request, response);
|
Parse.Cloud.Functions[req.params.functionName](request, response);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user