Make possible to alter response using the after save trigger (#5814)
* make possible to alter response using the after save trigger like for after find * code clearing to follow same object checking * remove console log debug * fix test unit
This commit is contained in:
committed by
Antonio Davi Macedo Coelho de Castro
parent
4fe0ff6ebf
commit
50f1e8eb77
@@ -419,4 +419,31 @@ describe('RestQuery.each', () => {
|
|||||||
expect(resultsOne.length).toBe(1);
|
expect(resultsOne.length).toBe(1);
|
||||||
expect(resultsTwo.length).toBe(1);
|
expect(resultsTwo.length).toBe(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('test afterSave response object is return', done => {
|
||||||
|
Parse.Cloud.beforeSave('TestObject2', function(req) {
|
||||||
|
req.object.set('tobeaddbefore', true);
|
||||||
|
req.object.set('tobeaddbeforeandremoveafter', true);
|
||||||
|
});
|
||||||
|
|
||||||
|
Parse.Cloud.afterSave('TestObject2', function(req) {
|
||||||
|
const jsonObject = req.object.toJSON();
|
||||||
|
delete jsonObject.todelete;
|
||||||
|
delete jsonObject.tobeaddbeforeandremoveafter;
|
||||||
|
jsonObject.toadd = true;
|
||||||
|
|
||||||
|
return jsonObject;
|
||||||
|
});
|
||||||
|
|
||||||
|
rest
|
||||||
|
.create(config, nobody, 'TestObject2', { todelete: true, tokeep: true })
|
||||||
|
.then(response => {
|
||||||
|
expect(response.response.toadd).toBeTruthy();
|
||||||
|
expect(response.response.tokeep).toBeTruthy();
|
||||||
|
expect(response.response.tobeaddbefore).toBeTruthy();
|
||||||
|
expect(response.response.tobeaddbeforeandremoveafter).toBeUndefined();
|
||||||
|
expect(response.response.todelete).toBeUndefined();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1578,6 +1578,11 @@ RestWrite.prototype.runAfterSaveTrigger = function() {
|
|||||||
this.config,
|
this.config,
|
||||||
this.context
|
this.context
|
||||||
)
|
)
|
||||||
|
.then(result => {
|
||||||
|
if (result && typeof result === 'object') {
|
||||||
|
this.response.response = result;
|
||||||
|
}
|
||||||
|
})
|
||||||
.catch(function(err) {
|
.catch(function(err) {
|
||||||
logger.warn('afterSave caught an error', err);
|
logger.warn('afterSave caught an error', err);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -266,6 +266,16 @@ export function getResponseObject(request, resolve, reject) {
|
|||||||
) {
|
) {
|
||||||
return resolve(response);
|
return resolve(response);
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
response &&
|
||||||
|
typeof response === 'object' &&
|
||||||
|
request.triggerName === Types.afterSave
|
||||||
|
) {
|
||||||
|
return resolve(response);
|
||||||
|
}
|
||||||
|
if (request.triggerName === Types.afterSave) {
|
||||||
|
return resolve();
|
||||||
|
}
|
||||||
response = {};
|
response = {};
|
||||||
if (request.triggerName === Types.beforeSave) {
|
if (request.triggerName === Types.beforeSave) {
|
||||||
response['object'] = request.object._getSaveJSON();
|
response['object'] = request.object._getSaveJSON();
|
||||||
|
|||||||
Reference in New Issue
Block a user