- [ ] #4 - [x] #7 - [ ] CI is set up - [ ] Tests start DB & dev server automatically - [ ] A separate container to run tests in it - [x] Todos are reviewed and documented in issues - [x] Tests for books use cases are added (#11) - [ ] Toggle including books to Author output - [ ] Toggle including authors to Book output - [ ] Implement sorting - [ ] Implement pagination - [ ] Implement fuzzy search - [ ] Implement auditing - [ ] Implement health check - [x] Rename `id` parameters to corresponding `<model>_id` wherever possible (#11) - [x] Implement additional validators for models fields (#13) - [x] Refactor AppClientError (#11) - [x] Refactor UseCases in terms of redundancy (#11, #13) - [x] Refactor API responses (#13) - [ ] Refactor API requests deserialisation - [x] Refactor AuthorRepo method signatures (#11, #13) - [x] ~Use Undefined const instead of None in default args~ use `None` for that purpose - [x] Implement SqlAlchemy repos (#11, #13) - [ ] Implement dependency injection - [x] Duplicate author-book assignments are forbidden (#13) - [x] Forbid to delete Book if one of its Authors will become degenerate (#13) - [ ] Annotate `retry` decorator factory in `clientlib` - [x] Mark all tests either `unit` or `e2e` (#12, #13) - [x] Authors user data are validated (#12, #13) - [x] Books user data are validated (#13)
idparameters to corresponding<model>_idwherever possible (Usecases are refactored #11)Use Undefined const instead of None in default argsuseNonefor that purposeretrydecorator factory inclientlibunitore2e(Authors user data are validated #12, Data are validated against integrity #13)