SharebookBR / sharebook-backend

Projeto backend de código livre para o app Sharebook.
117 stars 75 forks source link

Validação de slug na criação/edição de um livro #158

Closed Cussa closed 5 years ago

Cussa commented 5 years ago

Após os útimos testes que estávamos fazendo, acabamos encontrando uns erros que vamos reportar mais posteriormente. Porém eu achei esse erro na prática do slug.

Criação do livro

https://github.com/SharebookBR/sharebook-backend/blob/fc99e656e95cba3518d2443a2a81aee3bbd00633/ShareBook/ShareBook.Service/Book/BookService.cs#L150-L154 Aqui ele faz uma busca no repositório para verificar outros livros que tenham o mesmo nome. Caso não tenha nenhum (slug == null), ele irá gerar o slug a partir do título. Caso contrário, ele irá fazer a lógica de criar o slug com o incremento de número. Tudo certo aqui.

Edição do livro

https://github.com/SharebookBR/sharebook-backend/blob/fc99e656e95cba3518d2443a2a81aee3bbd00633/ShareBook/ShareBook.Service/Book/BookService.cs#L182-L186 Aqui, estamos usando a mesma lógica da criação. Ao meu ver, temos dois problemas.

  1. Ao fazer a mesma lógica, mesmo que este seja a única cópia do livro, ele irá salvar como se fosse a segunda cópia.
  2. Se o nome do livro mudar, talvez a gente devesse mudar o slug e seguir o mesmo processo. Mas caso contrário, não. Independente disso, mudar o slug poderá quebrar todos os links que já foram gerados para o mesmo.