Api / Services / Fields: Only emitFilter
if emitEvents
is not set to false
#21670
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Scope
The purpose of this PR is to fix eventual recursivity when using Fields Service.
More specifically, if we are using a filter hook for
fields.update
,fields.create
orfields.delete
, then useFieldsService.updateField
,FieldsService.createField
orFieldsService.deleteField
, this may cause recursion because theemitFilter
is always called.In order to prevent this, we just need to do the same as other services which is check if
emitEvents
is set tofalse
. If sodo not
emitFilter
and use original payload.What's changed:
emitEvents
to preventemitFilter
to be called onfields.update
,fields.create
andfields.delete
Potential Risks / Drawbacks
emitEvents: false
option, because it's not correct. But if there are, this will be impacting them. In order to keep the recursion, they can just put removeemitEvents: false
option.Review Notes / Questions