Use constants instead of magic strings for trigger names.

This commit is contained in:
Nikita Lutsenko
2016-02-25 20:01:52 -08:00
parent 1945313794
commit 5e4cecd94e
4 changed files with 15 additions and 19 deletions

View File

@@ -133,8 +133,7 @@ RestWrite.prototype.runBeforeTrigger = function() {
updatedObject.set(Parse._decode(undefined, this.data)); updatedObject.set(Parse._decode(undefined, this.data));
return Promise.resolve().then(() => { return Promise.resolve().then(() => {
return triggers.maybeRunTrigger( return triggers.maybeRunTrigger(triggers.Types.beforeSave, this.auth, updatedObject, originalObject, this.config.applicationId);
'beforeSave', this.auth, updatedObject, originalObject, this.config.applicationId);
}).then((response) => { }).then((response) => {
if (response && response.object) { if (response && response.object) {
this.data = response.object; this.data = response.object;
@@ -789,7 +788,7 @@ RestWrite.prototype.runAfterTrigger = function() {
originalObject = triggers.inflate(extraData, this.originalData); originalObject = triggers.inflate(extraData, this.originalData);
} }
triggers.maybeRunTrigger('afterSave', this.auth, inflatedObject, originalObject, this.config.applicationId); triggers.maybeRunTrigger(triggers.Types.afterSave, this.auth, inflatedObject, originalObject, this.config.applicationId);
}; };
// A helper to figure out what location this operation happens at. // A helper to figure out what location this operation happens at.

View File

@@ -1,5 +1,5 @@
var Parse = require("parse/node"); import { Parse } from 'parse/node';
var triggers = require("../triggers"); import * as triggers from '../triggers';
function validateClassNameForTriggers(className) { function validateClassNameForTriggers(className) {
const restrictedClassNames = [ '_Session' ]; const restrictedClassNames = [ '_Session' ];
@@ -23,22 +23,22 @@ ParseCloud.define = function(functionName, handler, validationHandler) {
ParseCloud.beforeSave = function(parseClass, handler) { ParseCloud.beforeSave = function(parseClass, handler) {
var className = getClassName(parseClass); var className = getClassName(parseClass);
triggers.addTrigger('beforeSave', className, handler, Parse.applicationId); triggers.addTrigger(triggers.Types.beforeSave, className, handler, Parse.applicationId);
}; };
ParseCloud.beforeDelete = function(parseClass, handler) { ParseCloud.beforeDelete = function(parseClass, handler) {
var className = getClassName(parseClass); var className = getClassName(parseClass);
triggers.addTrigger('beforeDelete', className, handler, Parse.applicationId); triggers.addTrigger(triggers.Types.beforeDelete, className, handler, Parse.applicationId);
}; };
ParseCloud.afterSave = function(parseClass, handler) { ParseCloud.afterSave = function(parseClass, handler) {
var className = getClassName(parseClass); var className = getClassName(parseClass);
triggers.addTrigger('afterSave', className, handler, Parse.applicationId); triggers.addTrigger(triggers.Types.afterSave, className, handler, Parse.applicationId);
}; };
ParseCloud.afterDelete = function(parseClass, handler) { ParseCloud.afterDelete = function(parseClass, handler) {
var className = getClassName(parseClass); var className = getClassName(parseClass);
triggers.addTrigger('afterDelete', className, handler, Parse.applicationId); triggers.addTrigger(triggers.Types.afterDelete, className, handler, Parse.applicationId);
}; };
ParseCloud._removeHook = function(category, name, type, applicationId) { ParseCloud._removeHook = function(category, name, type, applicationId) {

View File

@@ -39,8 +39,8 @@ function del(config, auth, className, objectId) {
var inflatedObject; var inflatedObject;
return Promise.resolve().then(() => { return Promise.resolve().then(() => {
if (triggers.getTrigger(className, 'beforeDelete', config.applicationId) || if (triggers.getTrigger(className, triggers.Types.beforeDelete, config.applicationId) ||
triggers.getTrigger(className, 'afterDelete', config.applicationId) || triggers.getTrigger(className, triggers.Types.afterDelete, config.applicationId) ||
className == '_Session') { className == '_Session') {
return find(config, auth, className, {objectId: objectId}) return find(config, auth, className, {objectId: objectId})
.then((response) => { .then((response) => {
@@ -48,8 +48,7 @@ function del(config, auth, className, objectId) {
response.results[0].className = className; response.results[0].className = className;
cache.clearUser(response.results[0].sessionToken); cache.clearUser(response.results[0].sessionToken);
inflatedObject = Parse.Object.fromJSON(response.results[0]); inflatedObject = Parse.Object.fromJSON(response.results[0]);
return triggers.maybeRunTrigger('beforeDelete', return triggers.maybeRunTrigger(triggers.Types.beforeDelete, auth, inflatedObject, null, config.applicationId);
auth, inflatedObject, null, config.applicationId);
} }
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND,
'Object not found for delete.'); 'Object not found for delete.');
@@ -76,7 +75,7 @@ function del(config, auth, className, objectId) {
objectId: objectId objectId: objectId
}, options); }, options);
}).then(() => { }).then(() => {
triggers.maybeRunTrigger('afterDelete', auth, inflatedObject, null, config.applicationId); triggers.maybeRunTrigger(triggers.Types.afterDelete, auth, inflatedObject, null, config.applicationId);
return Promise.resolve(); return Promise.resolve();
}); });
} }
@@ -96,8 +95,8 @@ function update(config, auth, className, objectId, restObject) {
enforceRoleSecurity('update', className, auth); enforceRoleSecurity('update', className, auth);
return Promise.resolve().then(() => { return Promise.resolve().then(() => {
if (triggers.getTrigger(className, 'beforeSave', config.applicationId) || if (triggers.getTrigger(className, triggers.Types.beforeSave, config.applicationId) ||
triggers.getTrigger(className, 'afterSave', config.applicationId)) { triggers.getTrigger(className, triggers.Types.afterSave, config.applicationId)) {
return find(config, auth, className, {objectId: objectId}); return find(config, auth, className, {objectId: objectId});
} }
return Promise.resolve({}); return Promise.resolve({});

View File

@@ -10,7 +10,6 @@ export const Types = {
}; };
const baseStore = function() { const baseStore = function() {
let Validators = {}; let Validators = {};
let Functions = {}; let Functions = {};
let Triggers = Object.keys(Types).reduce(function(base, key){ let Triggers = Object.keys(Types).reduce(function(base, key){
@@ -23,7 +22,7 @@ const baseStore = function() {
Validators, Validators,
Triggers Triggers
}); });
} };
const _triggerStore = {}; const _triggerStore = {};
@@ -59,7 +58,6 @@ export function _unregister(a,b,c,d) {
} }
} }
export function getTrigger(className, triggerType, applicationId) { export function getTrigger(className, triggerType, applicationId) {
if (!applicationId) { if (!applicationId) {
throw "Missing ApplicationID"; throw "Missing ApplicationID";