Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Diminui idas ao banco de dados na edição de usuários e na validação do token de confirmação do e-mail #1737

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

Rafatcb
Copy link
Collaborator

@Rafatcb Rafatcb commented Jul 1, 2024

Mudanças realizadas

Fiz algumas melhorias para diminuir as idas ao banco de dados e isso também acabou simplificando algumas coisas. Similar ao processo que fizemos em #1729. Assim como no outro PR, fiz as alterações em commits pequenos para facilitar a identificação (e possível reversão) de cada etapa.

  1. A atualização do usuário ocorria apenas pelo username, e em alguns lugares ocorria um user.findOneById apenas para poder passar o username para user.update. Como em todos os lugares que user.update é chamado o id é conhecido, agora o user.update utiliza id ao invés de username.
  2. No user.update, recebe options.oldUser para evitar uma nova busca pelo usuário sem necessidade. Interface similar ao content.update, que recebe options.oldContent.
  3. No user.update, ao invés de chamar balance.getTotal duas vezes, faz como em findOneById e outras funções, buscando na mesma query que está sendo executada. Também criei um teste onde o usuário tem tabcoins e tabcash para garantir que o retorno estava correto.
  4. Não valida o e-mail enviado caso seja o e-mail atual do usuário.
  5. Valida o username e email com uma única query.
  6. Não busca o token de confirmação de e-mail novamente apenas para validar se está expirado.

Também corrigi a função validatePatchSchema, que estava marcada como assíncrona desnecessariamente.

Houve a mudança no valor de error_location_code de um erro lançado em models/email-confirmation.js e outro em models/user.js, não sei se isso é considerado breaking change. Se for, posso renomear o commit e marcar no PR que houve breaking change, ou então manter o error_location_code antigo (não sei se isso faz sentido).

Tipo de mudança

  • Refatoração

Checklist:

  • As modificações não geram novos logs de erro ou aviso (warning).
  • Eu adicionei testes que provam que a correção ou novo recurso funciona conforme esperado.
  • Tanto os novos testes quanto os antigos estão passando localmente.

@Rafatcb Rafatcb added back Envolve modificações no backend refatoração Melhoria no código que não modifica o comportamento externo labels Jul 1, 2024
Copy link

vercel bot commented Jul 1, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
tabnews ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 1, 2024 1:20am

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
back Envolve modificações no backend refatoração Melhoria no código que não modifica o comportamento externo
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant