Skip to content

Commit 67260b5

Browse files
authored
Factor out checking for triggers/liveQuery in rest.js (#3539)
1 parent 411daf4 commit 67260b5

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/rest.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,16 @@ var RestQuery = require('./RestQuery');
1414
var RestWrite = require('./RestWrite');
1515
var triggers = require('./triggers');
1616

17+
function checkTriggers(className, config, types) {
18+
return types.some((triggerType) => {
19+
return triggers.getTrigger(className, triggers.Types[triggerType], config.applicationId);
20+
});
21+
}
22+
23+
function checkLiveQuery(className, config) {
24+
return config.liveQueryController && config.liveQueryController.hasLiveQuery(className)
25+
}
26+
1727
// Returns a promise for an object with optional keys 'results' and 'count'.
1828
function find(config, auth, className, restWhere, restOptions, clientSDK) {
1929
enforceRoleSecurity('find', className, auth);
@@ -49,10 +59,9 @@ function del(config, auth, className, objectId) {
4959
var inflatedObject;
5060

5161
return Promise.resolve().then(() => {
52-
if (triggers.getTrigger(className, triggers.Types.beforeDelete, config.applicationId) ||
53-
triggers.getTrigger(className, triggers.Types.afterDelete, config.applicationId) ||
54-
(config.liveQueryController && config.liveQueryController.hasLiveQuery(className)) ||
55-
className == '_Session') {
62+
const hasTriggers = checkTriggers(className, config, ['beforeDelete', 'afterDelete']);
63+
const hasLiveQuery = checkLiveQuery(className, config);
64+
if (hasTriggers || hasLiveQuery || className == '_Session') {
5665
return find(config, Auth.master(config), className, {objectId: objectId})
5766
.then((response) => {
5867
if (response && response.results && response.results.length) {
@@ -108,9 +117,9 @@ function update(config, auth, className, objectId, restObject, clientSDK) {
108117
enforceRoleSecurity('update', className, auth);
109118

110119
return Promise.resolve().then(() => {
111-
if (triggers.getTrigger(className, triggers.Types.beforeSave, config.applicationId) ||
112-
triggers.getTrigger(className, triggers.Types.afterSave, config.applicationId) ||
113-
(config.liveQueryController && config.liveQueryController.hasLiveQuery(className))) {
120+
const hasTriggers = checkTriggers(className, config, ['beforeSave', 'afterSave']);
121+
const hasLiveQuery = checkLiveQuery(className, config);
122+
if (hasTriggers || hasLiveQuery) {
114123
return find(config, Auth.master(config), className, {objectId: objectId});
115124
}
116125
return Promise.resolve({});

0 commit comments

Comments
 (0)