Skip to content

Correção da lógica de persistência e tratamento de mensagens de salvamento#2

Open
ramoslucas-lr wants to merge 2 commits intocaravelahc:masterfrom
ramoslucas-lr:fix-save-method
Open

Correção da lógica de persistência e tratamento de mensagens de salvamento#2
ramoslucas-lr wants to merge 2 commits intocaravelahc:masterfrom
ramoslucas-lr:fix-save-method

Conversation

@ramoslucas-lr
Copy link
Copy Markdown

Este Pull Request propõe ajustes na lógica de persistência e na interface de feedback do usuário, garantindo que o estado da aplicação e as mensagens exibidas reflitam corretamente o sucesso ou falha das operações de rede.

Alterações Realizadas

1. Correção da Lógica de Feedback (js/main.js)

Anteriormente, as ações de sucesso (exibição de mensagem verde, persistência do ID e reset da variável de mudanças) eram executadas de forma imperativa, independentemente do resultado da requisição.

  • Foi adicionado um bloco else após a verificação de erro.
  • Agora, o texto de confirmação "foi salvo" e as atualizações de estado (persistence.write_id e mudancas = false) só ocorrem se a operação for concluída com êxito.

2. Ajuste no Corpo da Requisição (js/main.js)

O envio dos dados no método PUT foi alterado de JSON.stringify(data) para o envio direto da variável data. Esta alteração alinha o envio ao formato esperado pelo backend, visto que data já era uma string Json:

self.save = function(identifier) {
        [...]
        let data = state.to_json();
        [...]
}

3. Normalização de Caminhos (js/database.js)

A constante DB_BASE_PATH foi ajustada de 'data/' para 'data'. Essa mudança visa evitar problemas de barras duplas em concatenações posteriores de URLs ou caminhos de arquivos. Onde era usada, a constante já era concatenada com '/':
image

Impacto

  • Confiabilidade: O usuário não receberá mais confirmações de "salvo" caso ocorra um erro de rede.
  • Consistência de Estado: A aplicação só marcará que não há mudanças pendentes se o servidor confirmar o recebimento.

Como Testar

  1. Realize uma alteração no horário e clique em salvar.
  2. Verifique no console ou na UI se a mensagem de sucesso aparece apenas após a resposta do servidor.
  3. Simule um erro de rede e confirme que o sistema exibe a mensagem de erro (cor coral) e mantém os dados pendentes de salvamento.

@JPTIZ JPTIZ self-assigned this Dec 19, 2025
@JPTIZ JPTIZ self-requested a review December 19, 2025 22:31
@JPTIZ JPTIZ added bug Something isn't working enhancement New feature or request labels Dec 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants