Добрый день;
Столкнулся с такой штукой: если не находит пользователя TypeORM просто генерит Server Internal Error — 500
А как мне это обработать, чтобы ошибки выкидывались нормальные? В случае, когда не находится - 404, User Not Found; И так далее.
Оборачивать метод репозитория юзера в трай-кетч? Но тогда в случае ошибки он передаст 500 тот же, который вылетит.
И сложно будет классифицировать характер ошибки.
И этот ход не выглядит лаконичным.
У тебя очень много вариантов, в зависимости от сложности твоего приложения выбирай, что больше подходит. В самом простом случае можно бросать ошибку 404, если поиск юзера вернул undefined прямо из метода репозитория. Делать это не рекомендуется, ибо у тебя репозиторий в этом случае знает про http-коды, текут слои. Можно создать кастомный UserNotFoundError, бросить его, поймать в сервисе или контроллере и пробросить нестовский NotFoundError выше, чтобы сгенерировался ответ сервера с 404.
Либо можно возвращать из репозитория Either<UserNotFoundError, UserEntity>, если не нравится баскетболить исключениями