resolve o problema de rastreabilidade e inconsistência de dados na sincronização de registros com o OPAC#1007
Draft
robertatakenaka wants to merge 3 commits into
Draft
resolve o problema de rastreabilidade e inconsistência de dados na sincronização de registros com o OPAC#1007robertatakenaka wants to merge 3 commits into
robertatakenaka wants to merge 3 commits into
Conversation
… OPAC Ajusta o mapeamento para aceitar o valor booleano nativo retornado pela chave 'status' do item, impedindo que 'status: false' seja avaliado erroneamente como True devido à comparação de string antiga.
- Atualiza o método 'XMLURL.record' para avaliar 'is_public' corretamente através do booleano de 'document_item'. - Remove o 'continue' precoce na task de carga, permitindo que o fluxo siga para o provedor tratar o status adequadamente.
…cord Modifica o fluxo do 'BasePidProvider' para instanciar o registro 'XMLURL' antes de realizar operações externas. Introduz o uso do 'update_record' para persistir o resultado final (sucesso ou falha interna), garantindo a rastreabilidade correta demandada na issue.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 Descrição
Este PR resolve o problema de rastreabilidade e inconsistência de dados na sincronização de registros com o OPAC. Anteriormente, itens que possuíam
"status": falseeram interpretados incorretamente como públicos (is_public = True), o que forçava tentativas de requisição inválidas, gerando logs de erro confusos (xml_fetch_failed) e poluindo a listagem deXMLURLs.Além disso, o fluxo de persistência de log foi refatorado para garantir o registro antecipado das tentativas de coleta, otimizando o diagnóstico de falhas.
🛠️ Alterações
1.
core/utils/harvesters.py!= "false"). Agora o sistema aceita diretamente o booleano retornado pelo OPAC, garantindo que o dicionário de dados reflita o estado real do item.2.
pid_provider/models.py&tasks.pyis_public: Ajustado o métodoXMLURL.recordpara ler e salvar corretamente o booleano vindo dedocument_item.get("status").update_recordpara atualizar instâncias já existentes deXMLURLsem duplicar registros ou perder o contexto inicial do payload.continueprecoce na task de carga, permitindo que itens não públicos também cheguem ao provider para serem registrados com o status correto de auditoria.3.
pid_provider/base_pid_provider.pyxml_url_recordagora é criado antes de tentar obter o XML via URI (try/except). Caso ocorra uma falha de rede ou comportamento inesperado, o registro base já existe no banco e é atualizado com o erro correspondente no blocoexcept, evitando estados inconsistentes.🐛 Problema Reportado (Issue)
Corrige #1005
status: false) estavam tentando ser coletados e salvos comis_public = Yes(True), resultando no erro genéricoxml_fetch_failed.Comportamento Esperado (Após este PR)
"status": false, o sistema infereis_public = No.🧪 Como testar?
zXmHVPm3TWVd8pdVmgXw4jN(ou um payload similar com"status": false).is_publicestá marcado como No (False).