scieloorg / kernel

É o componente central da nova arquitetura de sistemas de informação da Metodologia SciELO, ainda em fase de desenvolvimento.
https://docs.google.com/document/d/14YBl7--4ouaWBQhxzUYWRuhmegwnSYrDgupsED6rhvM/edit?usp=sharing
BSD 2-Clause "Simplified" License
6 stars 11 forks source link

Remover documentos do Kernel #156

Closed patymori closed 5 years ago

patymori commented 5 years ago

Descrição da nova funcionalidade

Eu, como usuário, gostaria que os documentos pudessem ser apagados do kernel, então documentos que foram inseridos incorretamente não permanecerão lá.

Critérios de aceitação

Anexos

n/a

Referências

n/a

Considerações

R: Creio que o código mais adequado seja 410 Gone. A sua descrição diz que "The 410 response is primarily intended to assist the task of web maintenance by notifying the recipient that the resource is intentionally unavailable and that the server owners desire that remote links to that resource be removed.". Outro motivo é que penso ser útil haver uma diferenciação entre documentos que nunca existiram e os que foram excluídos.

gustavofonseca commented 5 years ago

Estou considerando representar uma versão excluída com o dicionário:

{'deleted': True, 'timestamp': '2019-06-28T15:12:31.461624Z'}

Exemplo de manifesto:

{'id': 'foo',
 'versions': [{'assets': {'0034-8910-rsp-48-2-0347-gf01': [],
                          '0034-8910-rsp-48-2-0347-gf01-en': [],
                          '0034-8910-rsp-48-2-0347-gf02': [],
                          '0034-8910-rsp-48-2-0347-gf02-en': [],
                          '0034-8910-rsp-48-2-0347-gf03': [],
                          '0034-8910-rsp-48-2-0347-gf03-en': [],
                          '0034-8910-rsp-48-2-0347-gf04': [],
                          '0034-8910-rsp-48-2-0347-gf04-en': []},
               'data': 'https://raw.githubusercontent.com/scieloorg/packtools/master/tests/samples/0034-8910-rsp-48-2-0347.xml',
               'renditions': [],
               'timestamp': '2019-06-28T15:09:06.278576Z'},
              {'deleted': True, 'timestamp': '2019-06-28T15:12:31.461624Z'},
              {'assets': {'0034-8910-rsp-48-2-0347-gf01': [],
                          '0034-8910-rsp-48-2-0347-gf01-en': [],
                          '0034-8910-rsp-48-2-0347-gf02': [],
                          '0034-8910-rsp-48-2-0347-gf02-en': [],
                          '0034-8910-rsp-48-2-0347-gf03': [],
                          '0034-8910-rsp-48-2-0347-gf03-en': [],
                          '0034-8910-rsp-48-2-0347-gf04': [],
                          '0034-8910-rsp-48-2-0347-gf04-en': []},
               'data': 'https://raw.githubusercontent.com/scieloorg/packtools/master/tests/samples/0034-8910-rsp-48-2-0347.xml',
               'renditions': [],
               'timestamp': '2019-06-28T15:13:57.321071Z'}]}

O resultado dos métodos version e version_at deve ser: {'deleted': True, 'timestamp': '2019-06-28T15:12:31.461624Z'}

gustavofonseca commented 5 years ago

Estou usando o branch https://github.com/gustavofonseca/document-store/tree/del-docs para experimentar.