A exclusão é representada pela inclusão de uma nova versão do documento
indicando que o mesmo foi excluído, por meio da chave deleted=True.
Também é armazenado o timestamp da exclusão.
Essa estrutura de dados é retornada pelos métodos version e
version_at quando tratar-se de uma versão excluída. Os métodos data,
new_rendition_version e new_asset_version levantam a exceção
exceptions.DeletedVersion.
O endpoint RESTFul passa a retornar o código 410 Gone ao tentar
recuperar documentos excluídos. Foi decidido retornar esse código para
desambiguar documentos excluídos dos que nunca existiram.
Onde a revisão poderia começar?
Acredito que pelo módulo restfulapi.py.
Como este poderia ser testado manualmente?
Com a instância rodando, registre um novo documento:
O que esse PR faz?
Adiciona suporte a exclusão de documentos
A exclusão é representada pela inclusão de uma nova versão do documento indicando que o mesmo foi excluído, por meio da chave
deleted=True
. Também é armazenado o timestamp da exclusão.Essa estrutura de dados é retornada pelos métodos
version
eversion_at
quando tratar-se de uma versão excluída. Os métodosdata
,new_rendition_version
enew_asset_version
levantam a exceçãoexceptions.DeletedVersion
.O endpoint RESTFul passa a retornar o código 410 Gone ao tentar recuperar documentos excluídos. Foi decidido retornar esse código para desambiguar documentos excluídos dos que nunca existiram.
Onde a revisão poderia começar?
Acredito que pelo módulo
restfulapi.py
.Como este poderia ser testado manualmente?
Com a instância rodando, registre um novo documento:
Observe que seu XML é retornado:
Exclua o documento:
Observe que o código HTTP 410 Gone é retornado:
Observe o registro no endpoint de mudanças:
Algum cenário de contexto que queira dar?
n/a
Screenshots
n/a
Quais são tickets relevantes?
https://github.com/scieloorg/document-store/issues/156
Referências