Este pull request finaliza as modificações relacionadas a lista de itens dos bundles. O relacionamento entre Journal -> Issue e Issue -> Document passa a receber itens na estrutura de dicionários e sempre exige a chave id.
Onde a revisão poderia começar?
documentstore/restfulapi.py L 243
documentstore/restfulapi.py L 304
Como este poderia ser testado manualmente?
A sugestão para testar este PR é utilizar todos os endpoints expostos pelo Kernel e que em algum nível possam enfrentar problemas pelas modificações:
Alguns comandos para ajudar:
# DOCUMENTS
# Crie um documento
curl -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' http://0.0.0.0:6543/documents/0034-8910-rsp-48-2-0347 -d '{"data": "https://raw.githubusercontent.com/scieloorg/packtools/master/tests/samples/0034-8910-rsp-48-2-0347.xml", "assets": [{"asset_id":"0034-8910-rsp-48-2-0347-gf01", "asset_url":"http://www.scielo.br/img/revistas/rsp/v48n2/0034-8910-rsp-48-2-0347-gf01.jpg"},{"asset_id":"0034-8910-rsp-48-2-0347-gf01-en", "asset_url":"http://www.scielo.br/img/revistas/rsp/v48n2/0034-8910-rsp-48-2-0347-gf01-en.jpg"},{"asset_id":"0034-8910-rsp-48-2-0347-gf02", "asset_url":"http://www.scielo.br/img/revistas/rsp/v48n2/0034-8910-rsp-48-2-0347-gf02.jpg"},{"asset_id":"0034-8910-rsp-48-2-0347-gf02-en","asset_url":"http://www.scielo.br/img/revistas/rsp/v48n2/0034-8910-rsp-48-2-0347-gf02-en.jpg"},{"asset_id":"0034-8910-rsp-48-2-0347-gf03", "asset_url":"http://www.scielo.br/img/revistas/rsp/v48n2/0034-8910-rsp-48-2-0347-gf03.jpg"},{"asset_id":"0034-8910-rsp-48-2-0347-gf03-en","asset_url":"http://www.scielo.br/img/revistas/rsp/v48n2/0034-8910-rsp-48-2-0347-gf03-en.jpg"},{"asset_id":"0034-8910-rsp-48-2-0347-gf04", "asset_url":"http://www.scielo.br/img/revistas/rsp/v48n2/0034-8910-rsp-48-2-0347-gf04.jpg"},{"asset_id":"0034-8910-rsp-48-2-0347-gf04-en","asset_url":"http://www.scielo.br/img/revistas/rsp/v48n2/0034-8910-rsp-48-2-0347-gf04-en.jpg"}]}'
# Acesse o documento
curl -X GET -H 'Accept: text/xml' http://0.0.0.0:6543/documents/0034-8910-rsp-48-2-0347 -v | more
# Acesse o manifest e o front
curl -X GET -H 'Accept: application/json' http://0.0.0.0:6543/documents/0034-8910-rsp-48-2-0347/manifest -v | more
curl -X GET -H 'Accept: application/json' http://0.0.0.0:6543/documents/0034-8910-rsp-48-2-0347/front -v | more
# BUNDLES
# Crie um bundle
curl -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' http://0.0.0.0:6543/bundles/0066-782X-1999-v72-n0 -d '{"titles": [{"language": "pt", "value": "Bundle exemplo"}], "volume": "v1"}'
# Acesse o bundle
curl -X GET -H 'Accept: application/json' http://0.0.0.0:6543/bundles/0066-782X-1999-v72-n0 -v | more
# Relacione o documento com o bundle
curl -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' http://0.0.0.0:6543/bundles/0066-782X-1999-v72-n0/documents -d '[{"id": "0034-8910-rsp-48-2-0347", "order": "01"}, {"id": "0034-8910-rsp-48-2-0348", "order": "02"}]' -v
# Verifique se o relacionamento foi realizado
curl -X GET -H 'Accept: application/json' http://0.0.0.0:6543/bundles/0066-782X-1999-v72-n0 -v
# JOURNALS
# Crie um journal
curl -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' http://0.0.0.0:6543/journals/0066-782XX -d '{"title": "Exemplo de journal"}'
# Relacione com um bundle criado
curl -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' http://0.0.0.0:6543/journals/0066-782XX/issues -d '[{"id": "0066-782X-1999-v72-n0", "ns": ["2019", "v1"]}]' -v
# Acesse o journal e verifique o relacionamwento
curl -X GET -H 'Accept: application/json' http://0.0.0.0:6543/journals/0066-782XX -v
# Tente alterar UM relacionamento e perceba que não é possível via PATCH
curl -X PATCH -H 'Accept: application/json' -H 'Content-Type: application/json' http://0.0.0.0:6543/journals/0066-782XX/issues -d '{"issue": {"id": "0066-782X-1999-v72-n0", "ns": ["2019", "v2"]}}'
# Adicione uma relacionamento em uma posição específica via PATCH
curl -X PATCH -H 'Accept: application/json' -H 'Content-Type: application/json' http://0.0.0.0:6543/journals/0066-782XX/issues -d '{"issue": {"id": "nova-issue-2", "ns": ["2019", "v1"]}, "index": 0}'
# Remova um relacionamento
curl -X DELETE -H 'Accept: application/json' -H 'Content-Type: application/json' http://0.0.0.0:6543/journals/0066-782XX/issues -d '{"issue": "nova-issue"}'
O que esse PR faz?
Este pull request finaliza as modificações relacionadas a lista de itens dos
bundles
. O relacionamento entre Journal -> Issue e Issue -> Document passa a receber itens na estrutura de dicionários e sempre exige a chaveid
.Onde a revisão poderia começar?
documentstore/restfulapi.py
L243
documentstore/restfulapi.py
L304
Como este poderia ser testado manualmente?
A sugestão para testar este PR é utilizar todos os endpoints expostos pelo Kernel e que em algum nível possam enfrentar problemas pelas modificações:
Alguns comandos para ajudar:
Algum cenário de contexto que queira dar?
N/A
Screenshots
N/A
Quais são tickets relevantes?
closes #173 #174
Referências
N/A