1
1
// triggers.js
2
2
import Parse from 'parse/node' ;
3
3
import AppCache from './cache' ;
4
+ import { logger } from './logger' ;
4
5
5
6
export const Types = {
6
7
beforeSave : 'beforeSave' ,
@@ -152,6 +153,36 @@ export function getResponseObject(request, resolve, reject) {
152
153
}
153
154
} ;
154
155
156
+ function logTrigger ( triggerType , className , input ) {
157
+ if ( triggerType . indexOf ( 'after' ) != 0 ) {
158
+ return ;
159
+ }
160
+ logger . info ( `${ triggerType } triggered for ${ className } \nInput: ${ JSON . stringify ( input ) } ` , {
161
+ className,
162
+ triggerType,
163
+ input
164
+ } ) ;
165
+ }
166
+
167
+ function logTriggerSuccess ( triggerType , className , input , result ) {
168
+ logger . info ( `${ triggerType } triggered for ${ className } \nInput: ${ JSON . stringify ( input ) } \nResult: ${ JSON . stringify ( result ) } ` , {
169
+ className,
170
+ triggerType,
171
+ input,
172
+ result
173
+ } ) ;
174
+ }
175
+
176
+ function logTriggerError ( triggerType , className , input , error ) {
177
+ logger . error ( `${ triggerType } failed for ${ className } \nInput: ${ JSON . stringify ( input ) } \Error: ${ JSON . stringify ( error ) } ` , {
178
+ className,
179
+ triggerType,
180
+ input,
181
+ error
182
+ } ) ;
183
+ }
184
+
185
+
155
186
// To be used as part of the promise chain when saving/deleting an object
156
187
// Will resolve successfully if no trigger is configured
157
188
// Resolves to an object, empty or containing an object key. A beforeSave
@@ -165,11 +196,19 @@ export function maybeRunTrigger(triggerType, auth, parseObject, originalParseObj
165
196
var trigger = getTrigger ( parseObject . className , triggerType , config . applicationId ) ;
166
197
if ( ! trigger ) return resolve ( ) ;
167
198
var request = getRequestObject ( triggerType , auth , parseObject , originalParseObject , config ) ;
168
- var response = getResponseObject ( request , resolve , reject ) ;
199
+ var response = getResponseObject ( request , ( object ) => {
200
+ logTriggerSuccess ( triggerType , parseObject . className , parseObject . toJSON ( ) , object ) ;
201
+ resolve ( object ) ;
202
+ } , ( error ) => {
203
+ logTriggerError ( triggerType , parseObject . className , parseObject . toJSON ( ) , error ) ;
204
+ reject ( error ) ;
205
+ } ) ;
169
206
// Force the current Parse app before the trigger
170
207
Parse . applicationId = config . applicationId ;
171
208
Parse . javascriptKey = config . javascriptKey || '' ;
172
209
Parse . masterKey = config . masterKey ;
210
+ // For the afterSuccess / afterDelete
211
+ logTrigger ( triggerType , parseObject . className , parseObject . toJSON ( ) ) ;
173
212
trigger ( request , response ) ;
174
213
} ) ;
175
214
} ;
0 commit comments