Closed raffacabofrio closed 5 years ago
Algumas coisas que podem estar acontecendo: o endpoint de editar está sendo chamado, porém o mesmo espera o objeto inteiro de um livro ou outro endpoint está sendo chamado (apenas para editar a sinopse) e está sendo passada uma ViewModel de edição completa.
Para resolver a melhor solução é criar um endpoint com apenas a edição da sinopse, caso não exista, e atualizar apenas a propriedade desejada e não mapear o objeto inteiro (utilizando automapper e afins)
@marcios @bhenn se liga só. O que vcs acham?
vou analisar;
@marcios @bhenn se liga só. O que vcs acham?
Bom o que pode ser feito é o seguinte.
Na repository de livro (BookRepository), no "metodo public override async Task
Se o livro está aprovado e possui a chosse date valido (ou seja, não apenas verificando se possui data e sim se a data da choose date ainda não chegou). resumindo, se choosedate for menor que data atual é inválido.
Se essas condições forem verdadeiras, livro ativo e chooseDate > que data atual, não permtir a atualização do campo chooseDate. ao meu ver, isso seria uma 'validação' mais adequada doque somente olhar se chooseDate não está nulo.
Porque vocês não criam outro método no repositório (AlterarSinopse)? O repositório não precisa ser só de CRUD, com isso a validação sugerida pelo @marcios pode ficar fora da parte de acesso ao dados.
Outra solução seria manter o método de update, porém vocês trazem o objeto do banco e só atualizam a propriedade desejada.
Porque vocês não criam outro método no repositório (AlterarSinopse)? O repositório não precisa ser só de CRUD, com isso a validação sugerida pelo @marcios pode ficar fora da parte de acesso ao dados.
Criar um endpoint para somente atlerar sinpse é tranquilo no backend, mas isso exigirá uma mudança no fronteend tambem. a tela de editar livro possui apenas o botão salvar que é geral salva todas as informações do livro. teria que ter um botão apenas para alterar a sinopse. na minha opnião, teriamos 2 'problemas' agora pra resolver que é atualizar o front e o backend.
Outra solução seria manter o método de update, porém vocês trazem o objeto do banco e só atualizam a propriedade desejada.
isso, minha sugestão envolve isso. no update ja é omitido algumas propriedades da atualização
Bom eu fiz uma atualização local e fiz alguns testes acredito que ficou legal fiz como @arielmoraes sugeriu apenas na atualização do livro faço uma busca na base e atualizo as propriedades que vem da tela. vou enviar o PR para validação de todos.
Obrigado a todos. Cês são foda! Fechando aqui.
@arielmoraes @marcios
Ao editar um livro ( PUT ) o campo ChooseDate está ficando null indevidamente.
O ideal eh que campos omitidos NÃO sejam convertidos em null.
Passos para reproduzir esse erro, usando o front de dev: 1 - doe um livro. ( nasce com ChooseDate null, CORRETO ) 2 - aprove o livro ( ChooseDate ganha um valor, CORRETO ) 3 - edite apenas a sinopse do livro ( ChooseDate fica null, ERRADO )
Ambiente de DEV: http://dev.sharebook.com.br/
Usuário adm em DEV: vagner@sharebook.com 123456