Details
-
Tech Debt
-
Status: Closed (View Workflow)
-
P3
-
Resolution: Won't Do
-
None
-
None
-
None
-
-
Prokopovych - Sprint 105, Prokopovych - Sprint 106
-
3
-
Vega
Description
At the moment, the check out process has the following responsibilities:
- interpreting the request from the client
- Fetching the relevant information to process the check out
- applying the check out business logic
- persisting any changes in storage
- sending notices
- publishing messages for the circulation log etc
- responding to the client
These are all mingled together in a single flow. This makes the code harder to understand and easier to accidentally break. A recent example of this was CIRC-995 which introduces business logic that should fail a check out after changes to item had already been persisted