You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 17, 2020. It is now read-only.
There is an inherent coupling between Resource and Order structures in Filter and it is quite difficult to extend when we try to add more resources or order by classes. That is., there is a requirement for every Resource to support each Order bys which will not be the case at all times.
When trying to add a new Resource:
We will need to add a method to the Order interface with the name ArrangeResource. That would mean that we need to implement those methods in all existing structures which implements Order(say CreatedTime ). But, the newly added Resource may not even have any field related to created time.
When trying to add a new Order:
When we have a requirement to add a new Order By(say a new column which tracks number of times the short link is visited), we cannot add this Order By as that would mean, we will have to implement all the methods in the Order interface (currently has ArrangeShortLinks, ArrangeUsers). But, this new Order By is related only to ShortLinks.
Your solution
Will have to think through to come up with a more generic solution.
Alternatives considered
For resources not supporting a particular order by, we can throw NotApplicable error when the package's client tries to order by the unsupported order by. This will also include validating in NewFilter that the resource and order arrays are compatible with each other.