Boa noite!
Tenho dúvidas de onde implementar os erros https. A meu ver essa responsabilidade deveria ficar no controller, mas não consigo ver uma forma clara de fazer isso.
Hoje eu faço da seguinte forma:
- Cadastrar um usuário com e-mail único.
- Controller recebe as informações e chama o service.
- No service eu vou no banco e valido se o e-mail existe.
- Se sim eu retorno o 'throw new NotFoundException' (no service) informando que já existe.
Isso seria a melhor forma? O ideal não seria esse 'throw new NotFoundException' ser no controller, por se tratar de um erro http?
Pensei em fazer dessa forma:
- Cadastrar um usuário com e-mail único.
- Controller recebe as informações e chama o service.
- No service eu vou no banco e valido se o e-mail existe.
- Se não existe, o service retorna um usuario vazio ou null.
- Controller recebe esse usuario (do service) e valida se é null
- if(!usuario) 'throw new NotFoundException'
- Se não for null chama o service para criar o usuario
Dessa forma entendo que a responsabilidade do erro http fica no controller, porém entendo que uma parte da regra de negócio fica dentro do controller.
Estou implementando algo erroneamente? Ou isso é mero detalhe?