Fix: context for afterFind (#7078)
* Fix: context for afterFind * Update CHANGELOG.md Co-authored-by: Manuel <trezza.m@gmail.com>
This commit is contained in:
@@ -25,7 +25,8 @@ function RestQuery(
|
||||
restWhere = {},
|
||||
restOptions = {},
|
||||
clientSDK,
|
||||
runAfterFind = true
|
||||
runAfterFind = true,
|
||||
context
|
||||
) {
|
||||
this.config = config;
|
||||
this.auth = auth;
|
||||
@@ -36,6 +37,7 @@ function RestQuery(
|
||||
this.runAfterFind = runAfterFind;
|
||||
this.response = null;
|
||||
this.findOptions = {};
|
||||
this.context = context || {};
|
||||
|
||||
if (!this.auth.isMaster) {
|
||||
if (this.className == '_Session') {
|
||||
@@ -222,7 +224,16 @@ RestQuery.prototype.each = function (callback) {
|
||||
return !finished;
|
||||
},
|
||||
async () => {
|
||||
const query = new RestQuery(config, auth, className, restWhere, restOptions, clientSDK);
|
||||
const query = new RestQuery(
|
||||
config,
|
||||
auth,
|
||||
className,
|
||||
restWhere,
|
||||
restOptions,
|
||||
clientSDK,
|
||||
this.runAfterFind,
|
||||
this.context
|
||||
);
|
||||
const { results } = await query.execute();
|
||||
results.forEach(callback);
|
||||
finished = results.length < restOptions.limit;
|
||||
@@ -772,7 +783,8 @@ RestQuery.prototype.runAfterFindTrigger = function () {
|
||||
this.className,
|
||||
this.response.results,
|
||||
this.config,
|
||||
parseQuery
|
||||
parseQuery,
|
||||
this.context
|
||||
)
|
||||
.then(results => {
|
||||
// Ensure we properly set the className back
|
||||
|
||||
25
src/rest.js
25
src/rest.js
@@ -39,7 +39,16 @@ function find(config, auth, className, restWhere, restOptions, clientSDK, contex
|
||||
.then(result => {
|
||||
restWhere = result.restWhere || restWhere;
|
||||
restOptions = result.restOptions || restOptions;
|
||||
const query = new RestQuery(config, auth, className, restWhere, restOptions, clientSDK);
|
||||
const query = new RestQuery(
|
||||
config,
|
||||
auth,
|
||||
className,
|
||||
restWhere,
|
||||
restOptions,
|
||||
clientSDK,
|
||||
true,
|
||||
context
|
||||
);
|
||||
return query.execute();
|
||||
});
|
||||
}
|
||||
@@ -62,7 +71,16 @@ const get = (config, auth, className, objectId, restOptions, clientSDK, context)
|
||||
.then(result => {
|
||||
restWhere = result.restWhere || restWhere;
|
||||
restOptions = result.restOptions || restOptions;
|
||||
const query = new RestQuery(config, auth, className, restWhere, restOptions, clientSDK);
|
||||
const query = new RestQuery(
|
||||
config,
|
||||
auth,
|
||||
className,
|
||||
restWhere,
|
||||
restOptions,
|
||||
clientSDK,
|
||||
true,
|
||||
context
|
||||
);
|
||||
return query.execute();
|
||||
});
|
||||
};
|
||||
@@ -187,7 +205,8 @@ function update(config, auth, className, restWhere, restObject, clientSDK, conte
|
||||
restWhere,
|
||||
undefined,
|
||||
undefined,
|
||||
false
|
||||
false,
|
||||
context
|
||||
).execute({
|
||||
op: 'update',
|
||||
});
|
||||
|
||||
@@ -237,12 +237,12 @@ export function getRequestObject(
|
||||
if (originalParseObject) {
|
||||
request.original = originalParseObject;
|
||||
}
|
||||
|
||||
if (
|
||||
triggerType === Types.beforeSave ||
|
||||
triggerType === Types.afterSave ||
|
||||
triggerType === Types.beforeDelete ||
|
||||
triggerType === Types.afterDelete
|
||||
triggerType === Types.afterDelete ||
|
||||
triggerType === Types.afterFind
|
||||
) {
|
||||
// Set a copy of the context on the request object.
|
||||
request.context = Object.assign({}, context);
|
||||
@@ -388,13 +388,21 @@ function logTriggerErrorBeforeHook(triggerType, className, input, auth, error) {
|
||||
);
|
||||
}
|
||||
|
||||
export function maybeRunAfterFindTrigger(triggerType, auth, className, objects, config, query) {
|
||||
export function maybeRunAfterFindTrigger(
|
||||
triggerType,
|
||||
auth,
|
||||
className,
|
||||
objects,
|
||||
config,
|
||||
query,
|
||||
context
|
||||
) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const trigger = getTrigger(className, triggerType, config.applicationId);
|
||||
if (!trigger) {
|
||||
return resolve();
|
||||
}
|
||||
const request = getRequestObject(triggerType, auth, null, null, config);
|
||||
const request = getRequestObject(triggerType, auth, null, null, config, context);
|
||||
if (query) {
|
||||
request.query = query;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user