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

Adiciona o param ``ensure_unique_name`` em def new_asset_version e de f new_version com valor padrão ``False`` para garantir não seja avaliado a unicidade dos nomes dos ativos tanto do XML quanto dos ativos(JPG, PNG e etc). #239

Closed gitnnolabs closed 2 years ago

gitnnolabs commented 2 years ago

O que esse PR faz?

Adiciona o param ensure_unique_name em def new_asset_version e de f new_version com valor padrão False para garantir não seja avaliado a unicidade dos nomes dos ativos tanto do XML quanto dos ativos(JPG, PNG e etc).

Onde a revisão poderia começar?

Subindo uma instância do kernel e realizando a seguinte validação:

Adiciona um documento no kernel

curl -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' http://gserver:6543/documents/XCLqhBV4qbT84sqg7D7g8qv -d '{ "data": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/d6f1c335e7ad090d11e6f4f1bc5485010c9093d7.xml", "scielo_id": "XCLqhBV4qbT84sqg7D7g8qv", "issn": "2238-0019", "year": "2022", "order": "00301", "xml_package_name": "2238-0019-trends-v44-e20210316", "assets": [ { "asset_id": "2238-0019-trends-v44-e20210316-gf01.tif", "asset_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/5ffa9f8b3dfc3aa4002a5da7d10ad656fc6ccc67.tif" }, { "asset_id": "2238-0019-trends-v44-e20210316-gf01.png", "asset_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/df04c04ee793c51e965e8e9097db296efe01df6b.png" }, { "asset_id": "2238-0019-trends-v44-e20210316-gf01.thumbnail.jpg", "asset_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/4b744f79443501a317b75e4edd9a127666404173.jpg" } ], "pdfs": [ { "size_bytes": 178789, "filename": "2238-0019-trends-v44-e20210316.pdf", "lang": "en", "mimetype": "application/pdf", "data_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/a696c0a550ee3fa926b5bf994355051dd266b633.pdf" } ], "volume": "44", "xml_url": "https://minio.scielo.br/minio/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/d6f1c335e7ad090d11e6f4f1bc5485010c9093d7.xml" }'

Atualiza o renditions do registro:

curl -X PATCH -H 'Accept: application/json' -H 'Content-Type: application/json' http://gserver:6543/documents/XCLqhBV4qbT84sqg7D7g8qv/renditions -d '{ "size_bytes": 178789, "filename": "2238-0019-trends-v44-e20210316.pdf", "lang": "en", "mimetype": "application/pdf", "data_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/a696c0a550ee3fa926b5bf994355051dd266b633.pdf" }'

Adiciona uma nova versão com um XML com nome diferente:

curl -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' http://gserver:6543/documents/XCLqhBV4qbT84sqg7D7g8qv -d '{ "data": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/62e88ac13684eef8747842e6d84826df38b4cc60.xml", "scielo_id": "XCLqhBV4qbT84sqg7D7g8qv", "issn": "2238-0019", "year": "2022", "order": "00301", "xml_package_name": "2238-0019-trends-v44-e20210316", "assets": [ { "asset_id": "2238-0019-trends-v44-e20210316-gf01.tif", "asset_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/07cdebafc40c87cc01ff11512f5daf2f9e50a410.tif" }, { "asset_id": "2238-0019-trends-v44-e20210316-gf01.png", "asset_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/c24e232d711abcbe8bcc972e5453dc38a6614e1e.png" }, { "asset_id": "2238-0019-trends-v44-e20210316-gf01.thumbnail.jpg", "asset_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/65bcae0932d211d140c1157a2bf42058fe80d562.jpg" } ], "pdfs": [ { "size_bytes": 178789, "filename": "2238-0019-trends-v44-e20210316.pdf", "lang": "en", "mimetype": "application/pdf", "data_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/a696c0a550ee3fa926b5bf994355051dd266b633.pdf" } ], "volume": "44", "xml_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/62e88ac13684eef8747842e6d84826df38b4cc60.xml" }'

Atualiza o renditions do registro:

curl -X PATCH -H 'Accept: application/json' -H 'Content-Type: application/json' http://gserver:6543/documents/XCLqhBV4qbT84sqg7D7g8qv/renditions -d '{ "size_bytes": 178789, "filename": "2238-0019-trends-v44-e20210316.pdf", "lang": "en", "mimetype": "application/pdf", "data_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/a696c0a550ee3fa926b5bf994355051dd266b633.pdf" }'

Adiciona uma nova versão com o mesmo nome de XML:

curl -X PUT -H 'Accept: application/json' -H 'Content-Type: application/json' http://gserver:6543/documents/XCLqhBV4qbT84sqg7D7g8qv -d '{"data": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/62e88ac13684eef8747842e6d84826df38b4cc60.xml", "assets": [{"asset_id": "2238-0019-trends-v44-e20210316-gf01.tif", "asset_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/5ffa9f8b3dfc3aa4002a5da7d10ad656fc6ccc67.tif"}, {"asset_id": "2238-0019-trends-v44-e20210316-gf01.png", "asset_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/df04c04ee793c51e965e8e9097db296efe01df6b.png"}, {"asset_id": "2238-0019-trends-v44-e20210316-gf01.thumbnail.jpg", "asset_url": "https://minio.scielo.br/documentstore/2238-0019/XCLqhBV4qbT84sqg7D7g8qv/e6d0646165817e2a86fbd363fc0918c52c999bbc.jpg"}]}'

O registro deve ficar da seguinte forma:

Captura de Tela 2022-05-24 às 07 30 22

Os dados da última versão deve constar no endpoint manifest e o XML deve ter o apontamento para as images da última versão, veja:

Captura de Tela 2022-05-24 às 07 38 29

Como este poderia ser testado manualmente?

Seguindos o passo a passo do item anterior.

Algum cenário de contexto que queira dar?

Essa atividade foi realizada para dá para o controle de o cliente da API controlar o conteúdo depositado sem qualquer trava.

Possivelmente esse PR alguns problemas de imagens descritos no documento: https://docs.google.com/document/d/1gB9EffmV2MhSRU1ZKzm8RemM5_gdGmXktTNBk_memrA/edit#

Screenshots

N/A

Quais são tickets relevantes?

Considere as falhas de atualização de qualquer ativo que tenha o mesmo nome e/ou o mesmo nome de XML.

Referências

N/A