Completely rewrites route creation to use pyramid decorators instead of contexes.
Also reworks the error handling to make it easier to choose what errors to catch and when. It now uses regular
try...except blocks around the parts which could fail, and raises a pyramid
HTTPError to return an HTTP error to the user.
As part of the error handling, this MR adds request parameter validation using marshmallow and marshmallow_dataclass. Using those libraries we can define
dataclasses and convert them to a schema compatible with marshmallow and used to validate request parameters.
There is one breaking change in this MR: The
/transaction endpoint is now split in 4 with
/transaction/rollback. This was done in order to have static params. Before this change, request parameters would change based on the
Closes #9 (closed)
Closes #5 (closed)
Closes #11 (closed)