Quest-Finder / temvagamestre.server

MIT License
5 stars 0 forks source link

Feat/user signup with email #75

Closed clintonbrito closed 1 month ago

clintonbrito commented 2 months ago

Work in progress: I'll let you know when I'm done with this branch and ask for reviews soon after.

clintonbrito commented 2 months ago

Se puderem me dar um feedback do que já fiz para saber se estou no caminho certo, agradeço. Esses dias não pude estar na frente do PC devido à viagem, como havia avisado antes, por isso reconheço que estou bastante atrasado em relação ao que gostaria de já ter feito.

clintonbrito commented 2 months ago

@felipesouza91 eu e a @htamagnus fizemos algumas alterações no sentido de diminuir a complexidade, remover factories etc. para tentar usar o usecase diretamente no controller. Porém, não conseguimos obter tanto sucesso nisso, o código está acoplado demais nessa questão do uso das factories. Será que depois você pode tentar rodar o projeto na sua máquina nesse último commit que fizemos para me ajudar a desacoplar esse código? Vou marcar em que lugar no código tá pegando mais a refatoração que a gente travou.

felipesouza91 commented 2 months ago

Fala mano, eu vi a reunião de você ontem, mais acabai não conseguindo entrar pois estava resolvendo um problema pessoal. Vou dar uma olhada mais tarde chegando em casa.

felipesouza91 commented 2 months ago

@clintonbrito e @htamagnus

Considerações, fiz os pushs porque acho que vendo o código feito fica melhor que eu explicar muita coisa aqui, vou tentar resumir mais se quiser marcar um dia para fazermos uma reunião e conversar melhor sobre isso sem problema.

Vou tentar resumir o processo com base nos commits que eu fiz:

Toda a solução enviada já esta com ideia de segue a arquitetura proposta pelo próprio framework NestJs.

1 - fix: to make test run : Removi tudo que estava dando erro para poder rodar a aplicação, esse e um dos motivos que o ideal e fazer um rebase para antes desse commit.

2- refactor: create a shared module that is used for all application wit: Nesso commit eu criei um Shared Module, esse modulo e indicado pelo nestjs para deixar códigos que serão utilizados por toda a aplicação. Dentro desse modulo tempo um Service, que será utilizado para fornecer a conexão com o prisma, basicamente inicia a conexão e retornar o prisma cliente, porem utilizando o sistema de injeção de dependências do NestJS . Referencia: https://docs.nestjs.com/modules#shared-modules

3-refactor: create a user module, with a sign-up controller: Aqui, foi criado um modulo para deixar centralizado tudo referente a uma determinada entidade do sistema, nesse caso usuário, poderíamos mudar para um authentication module por exemplo, e deixar dentro desse modulo a parte de sign-up e autenticação. Dentro desse modulo criamos um Controller e Service. O Controller e para receber as requisições via HTTP, o Service faz a camada de "UseCase"/Regras de negocio, e a integração com o bando de dados. Aqui também utilizamos as injeções do frameworks. Referencia: https://docs.nestjs.com/controllers - https://docs.nestjs.com/providers

4-refactor: add shared and user module to application : Só modifico o AppModule, para importar os Shared Module e o UserModule, com isso eu gero as injeções de dependência e públicos as rotas

Se tentar rodar o código e fazer o post para /sign-up você vai ter o usuário cadastrado no banco, falta a parte do token e etc. Só uma observação para fazer o tem que ser pelo Postman, Insominia ou outro qualquer pois a rota não esta publicada no Swagger.

clintonbrito commented 2 months ago

@felipesouza91 @htamagnus

Ajustei o retorno da requisição para retornar um token real, sem mais uso de fakes. Agora eu vou criptografar a senha antes de salvar no banco, ajustar a rota e a documentação no Swagger e assim que finalizar essa rota já apago todo o código escrito inicialmente nesse PR em que eu utilizo a arquitetura antiga para resolver essa questão do erro do github actions Run tests / tests (pull_request) que está falhando toda hora. Só não sei se vou conseguir fazer isso amanhã porque tenho um teste técnico para entregar até amanhã às 23h59.

htamagnus commented 2 months ago

@felipesouza91 @htamagnus

Ajustei o retorno da requisição para retornar um token real, sem mais uso de fakes. Agora eu vou criptografar a senha antes de salvar no banco, ajustar a rota e a documentação no Swagger e assim que finalizar essa rota já apago todo o código escrito inicialmente nesse PR em que eu utilizo a arquitetura antiga para resolver essa questão do erro do github actions Run tests / tests (pull_request) que está falhando toda hora. Só não sei se vou conseguir fazer isso amanhã porque tenho um teste técnico para entregar até amanhã às 23h59.

Se precisar de ajuda nisso pode me chamar @clintonbrito . Foca no seu teste, boa sorte! Se precisar de ajuda nele também, estou aqui <3

clintonbrito commented 1 month ago

E com relação aos erros do SonarCloud, pelo que percebi, todas as issues são referentes ao fato de eu escrever hardcoded qual é a senha hipotética para utilizar nos testes. Como resolver isso?

image

emerson-oliveira commented 1 month ago

E com relação aos erros do SonarCloud, pelo que percebi, todas as issues são referentes ao fato de eu escrever hardcoded qual é a senha hipotética para utilizar nos testes. Como resolver isso?

image

Nesse caso precisamos configurar o sonar para ignorar os arquivos de teste

sonarcloud[bot] commented 1 month ago

Quality Gate Passed Quality Gate passed

Issues
3 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud

Rafapoeta commented 3 weeks ago

Bloquear todos los accesos inpedir accesos ami privacidad