Refactor SystemHooksService (Decrease CyclomaticComplexity)
What does this MR do?
This MR reduces the Cyclomatic Complexity in
SystemHooksService class as listed here.
All event-data logic has been extracted into a set of smaller focused classes, which share behaviour in
EventInfos::Base class and each adding own specific data, thereby avoiding big conditionals.
Specs have been just slightly updated - not to rely on a private method (
build_event_name), but rather on the result of the new object.
The specs in
spec/services/system_hooks_service_spec.rb should also be refactored since they basically just test event data assembly
What are the relevant issue numbers?
Does this MR meet the acceptance criteria?
- Changelog entry added, if necessary
- Documentation created/updated via this MR
- Documentation reviewed by technical writer or follow-up review issue created
- Tests added for this feature/bug
- Tested in all supported browsers
- Conforms to the code review guidelines
- Conforms to the merge request performance guidelines
- Conforms to the style guides
- Conforms to the database guides
- Link to e2e tests MR added if this MR has Requires e2e tests label. See the Test Planning Process.
- Security reports checked/validated by reviewer