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

Corrige registro de mudança para renditions #212

Closed gustavofonseca closed 4 years ago

gustavofonseca commented 4 years ago

Foi criada a classe services.DocumentRenditions que implementa a interface de acesso aos dados da mesma forma que as classes de domínio -- métodos data_bytes e data_type. Esta classe foi implementada no módulo services deliberadamente, pois não deve ser entendida como uma classe de domínio mas apenas como um adapter para seus dependentes no módulo services.

Onde a revisão poderia começar?

n/a

Como este poderia ser testado manualmente?

  1. Inicialize uma instância do Kernel
  2. Registre um documento e um rendition:
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"}]}'

curl -X PATCH -H 'Accept: application/json' -H 'Content-Type: application/json' http://0.0.0.0:6543/documents/0034-8910-rsp-48-2-0347/renditions -d '{"filename": "0034-8910-rsp-48-2-0347_pt.pdf", "data_url": "https://www.foo.com/0034-8910-rsp-48-2-0347_pt.pdf", "mimetype": "application/pdf", "lang": "pt-br", "size_bytes": 123456789}'
  1. Abra um console interativo do Python e digite:
import requests, gzip, base64
response = requests.get('http://0.0.0.0:6543/changes/5e271ff70fff100a64d902ad').json()
print(gzip.decompress(base64.b64decode(response["content_gz_b64"])))

Troque 5e271ff70fff100a64d902ad pelo identificador da mudança correspondente ao registro do rendition. Você pode obter este identificador no endpoint /changes.

Algum cenário de contexto que queira dar?

n/a

Screenshots

n/a

Quais são tickets relevantes?

207

Referências

n/a