youtube-api-node-solid icon indicating copy to clipboard operation
youtube-api-node-solid copied to clipboard

Dúvida sobre validação

Open mbackermann opened this issue 4 years ago • 2 comments

A validação do usuário ficaria aonde? Por exemplo como e-mail obrigatório, senha mínima de 8 caracteres, nome obrigatório, etc? Isso faz parte do useCase já que é uma lógica de negócio? Mas se eu precisasse validar também no updateUserUseCase, eu teria código repetido. Talvez no DTO? Realmente é uma dúvida que tenho.

mbackermann avatar Mar 03 '21 21:03 mbackermann

Oii Maurício!!!

A validação poderia ser feita em um arquivo separado na pasta do useCase, ex: "CreateUserValidator"/"UpdateUserValidator". Esse arquivo seria uma classe que teria um método "validate", por exemplo, que receberia os dados de acordo com o DTO. Essa classe seria "injetada" no constructor do controller e seria chamada antes do useCase, propriamente. Poderia dar um throw no erro da validação, que cairia no try/catch do controller.

Dessa forma, a validação fica desacoplada do useCase, podendo ser modificada e até mesmo testada totalmente à parte. Apesar de como tu disse, em alguns casos haver uma repetição de código, acredito que esse desacoplamento seja necessário para respeitar os princípios e garantir a liberdade em uma futura modificação (ex: pode vir a acontecer dos dados do CreateUser e UpdateUser serem diferentes mesmo que hoje sejam os mesmos). ;D

rimelke avatar Mar 13 '21 16:03 rimelke

@rimelke Muito obrigado! Faz bastante sentido essa implementação. Vou aplicá-la.

mbackermann avatar Mar 16 '21 22:03 mbackermann