Refactor complex operations to backend service actions
Opened this issue · 1 comments
Checked for duplicates
No - I haven't checked
Alternatives considered
Yes - and alternatives don't suffice
Related problems
Some common operations are currently implemented with complex front-end logic that makes it difficult to reproduce the capability via the Aerie API. (Deleting an activity is the one that spawned the thought.)
Describe the feature request
It would be nice if complex logic like this were more frequently implemented as Hasura actions that interact with a back-end service so that client applications don't need to duplicate logic implemented in the UI. I think the solution for plan upload was a great demonstration of this pattern (although, from the standpoint of separating concerns, I expect the merlin server would be a better final destination for this logic instead of the Aerie Gateway.)
Lazily adding more thoughts here on coupling between the UI and backend, another pain point is the user role. As I understand, there is a lot of coupled logic between Hasura and the UI in order to indicate to the user which operations are available with a given role, but having this logic only available in the UI makes it very difficult to decode permission vs. query errors when going through Hasura.