Skip to main content

Gerenciamento de Cookies

O gerenciamento de cookies implementado tem o objetivo de armazenar e recuperar dados relacionados ao objeto Ledger no navegador, utilizando cookies. Aqui está uma explicação detalhada do que cada parte faz:

A função de verificação garante que o código só tente manipular cookies se estiver rodando em um ambiente de navegador. Ela verifica se os objetos globais window e document estão disponíveis.

Se esses objetos não existirem, significa que o código está rodando em outro ambiente (como em um servidor, por exemplo) e, portanto, não faz sentido tentar acessar cookies. Essa etapa é importante para evitar erros em execuções fora do navegador e garante que o código só funcione em ambientes que suportem cookies.


A função que recupera os cookies busca um cookie específico com o identificador 'ledger'. O processo de recuperação começa obtendo todos os cookies presentes no documento, através do document.cookie, que retorna todos os cookies como uma única string.

O código então utiliza o identificador 'ledger' para buscar o cookie específico que contém os dados do Ledger. Se o cookie for encontrado, a string correspondente é isolada e processada. A string do cookie é então convertida de JSON para um objeto Ledger (ver Introdução - Objeto Ledger).

Caso ocorra um erro ao tentar converter (por exemplo, se o cookie estiver corrompido ou com dados inválidos), a função captura esse erro e retorna null, indicando que não foi possível obter o dado de maneira confiável. Se o cookie não for encontrado ou não puder ser lido corretamente, o retorno será null, o que permite ao sistema saber que precisa criar um novo Ledger.


Quando o sistema precisa armazenar ou atualizar o Ledger, a função de escrita de cookies entra em ação. Primeiramente, ela define uma data de expiração para o cookie. Para isso, usa uma função auxiliar que adiciona um ano à data atual, o que significa que o cookie permanecerá válido por um ano a partir do momento de sua criação. A data de expiração é formatada em um padrão compatível com cookies (expires).

O objeto Ledger a ser salvo é convertido em uma string JSON, pois cookies podem armazenar apenas dados em formato de string. Finalmente, o cookie é configurado com o identificador 'ledger', os dados em formato JSON, a data de expiração, e a política de escopo path=/, que faz com que o cookie esteja disponível em todas as páginas do site.

Assim, o cookie é salvo no navegador e permanecerá acessível até sua expiração ou até que seja atualizado ou removido.


4. Retorno de Funções

O gerenciamento de cookies encapsula essas funções em um objeto retornado, disponibilizando-as para uso externo em outros momentos de recuperação e atualização do Ledger:

  • A função de acesso (access) verifica se o ambiente permite manipular cookies.
  • A função de leitura (get) recupera os dados do cookie e retorna o Ledger ou null.
  • A função de escrita (set) armazena ou atualiza o Ledger no cookie, com uma validade de um ano.

Esse gerenciamento de cookies permite que os dados do Ledger sejam armazenados localmente no navegador e persistam entre sessões, garantindo que o sistema possa acessar e utilizar essas informações sempre que necessário, sem depender de uma comunicação constante com o servidor.