refactor(core): paging classes inheritance
Description
refactor(core): paging classes inheritance
- introduced polymorphism in hopes if making future refactoring of paging logic easier
- added parent class PageQuery to *PageQuery classes
- added OrderColumn interface to *OrderColumn enums
How to test
Probably not needed since tests pass, but deploy on devel and play around with paginated tables just to be sure
Author's checklist
-
I have followed the contribution guidelines -
This MR has been tested or does not change functionality -
I have added relevant merge request dependencies (if this MR has any) -
I have added the correct labels -
I have assigned reviewers (if any are relevant) -
I have edited the documentation (if the changes require it) or I have noted the need for the change if I do not have access to the documentation -
I have marked all introduced BREAKING CHANGES or necessary DEPLOYMENT NOTES in the commit message(s)
Reviewer's checklist
-
This MR has been tested or does not change functionality -
This MR has correct commit message format
Other information
In the end this is just a slightly modified version of !4325. I decided not to move OrderColumn fields into PageQuery, since in order to deserialize this kind of polymorphism (OrderColumn interface field in an abstract parent class - that cannot be instantiated) via Jackson would require a custom deserializer and/or more complex annotation magic and the benefit of having the field extracted into PageQuery would not outweigh the introduced complexity.
Related issues
Closes STR-1227
Edited by David Flor