Atualizar Carga de Tabelas

Funcionalidade de atualização de carga de tabelas do Zoop Desktop Server.

Envie uma requisição para forçar uma carga de tabelas para o PIN Pad.

📘

Esta funcionalidade não é mandatória. Quando necessário, o dispositivo realiza a carga de tabelas durante a transação. Use esta funcionalidade apenas para forçar uma carga sem prosseguir com o fluxo de venda.

Exemplo de carga de tabelas

Requisitando ao servidor

Inicie uma carga de tabelas enviando uma requisição em JSON com os seguintes campos:

{
  "type": "tableLoad"
}

Envie a requisição por meio de WebSocket, como no exemplo abaixo em JavaScript:

let tablesRequest = {
  type: "tableLoad"
}

// Onde `socket` é um objeto de `WebSocket`.
socket.send(JSON.stringify(tablesRequest))
socket.onmessage = (event) => {
  let response = JSON.parse(event.data)

  if (response == null) {
    return
  }

  if (response.type == "tableLoad") {
    if (response.status == "started") {
      // O processo de carga de tabelas foi iniciado.
      // ...

      return
    }

    if (response.status == "message") {
      /* Uma mensagem foi recebida no campo `message`, e deverá ser apresentada
         ao operador/cliente. */
      // ...

      return
    }

    if (response.status == "success") {
      // A carga de tabelas foi bem-sucedida.
      // ...

      return
    }

    if (response.status == "failed") {
      // Falha na carga de tabelas.
      // ...

      return
    }

    if (response.status == "finished") {
      // O processo de carga de tabelas terminou.
      // ...

      return
    }
  }

  // ...
}
📘

Um exemplo mais completo está disponível no aplicativo de exemplo, na função eventUpdateTables do arquivo updateTables.js.

Respostas

O Desktop Server responderá em JSON, indicando em status:

  • started: início da carga de tabelas;
  • message: recebimento de uma mensagem;
  • success: sucesso da carga de tabelas;
  • failed: falha da carga de tabelas e a causa;
  • finished: término da carga de tabelas.

Início da carga de tabelas

Esta resposta sinaliza o início do processo de carga de tabelas. Ela será sucedida por outras respostas informando o andamento do processo.

{
  "type": "tableLoad",
  "status": "started",
  "message": "Processando carga de tabelas"
}

Mensagem

Esta resposta sinaliza o recebimento de uma mensagem que deverá ser apresentada de alguma forma ao operador/cliente.

{
  "type": "tableLoad",
  "status": "message",
  "message": "Atualizando tabelas"
}

Sucesso na carga de tabelas

Esta resposta sinaliza o sucesso da carga de tabelas.

{
  "type": "tableLoad",
  "status": "success",
  "message": "Tabelas carregadas"
}

Falha durante a carga de tabelas

Caso ocorra alguma falha durante o processo, a resposta será similar a esta:

{
  "type": "tableLoad",
  "status": "failed",
  "message": "OPERACAO CANCELADA",
  "statusCode": -1
}

O valor de statusCode será o código do erro que ocasionou a falha, sendo -1 caso não haja um código para a causa.

Término da carga de tabelas

Esta resposta sinaliza o término do processo de carga de tabelas, independentemente de sucesso ou falha.

{
  "type": "tableLoad",
  "status": "finished",
  "message": "Carga de tabela finalizada"
}