Improve Prisma client error code to HTTP status code mapping
#384 opened on 2021年12月7日
Repository metrics
- Stars
- (4,229 stars)
- PR merge metrics
- (平均マージ 2d 16h) (30d で 85 merged PRs)
説明
When saving things to the database with Prisma, many things can potentially go wrong. We need to indicate them to clients in ways that are actionable when they can correct them (e.g., status code 422 on bad input), or otherwise when they cannot (e.g., status code 500 when things are really wrong on backend).
We currently have a basic helper in place [waspc/data/Generator/templates/server/src/utils.js] that can check if an Error is a Prisma client error, and convert it to an HttpError. It is used during the sign up flow [waspc/data/Generator/templates/server/src/routes/auth/signup.js]. However, the mapping is incomplete. We need to thoroughly review https://www.prisma.io/docs/reference/api-reference/error-reference and determine what HTTP status code/message we should send from the controller to the frontend in each case.
This may also require refactoring the existing helpers, and allowing more flexible uses.