clearsale

Esse package é a de integração com a aplicação Total - Total Garantido da Clearsale. Código baseado na documentação oficial.

Arquitetura

O código desse package segue o padrão do Clean Dart, uma proposta de implementação do Clean Architeture para Dart [doc](https://github.com/flutterando/clean-dart)

import

pubspec.yaml

dependencies:
  clearsale: <last version>
import 'package:clearsale/clearsale.dart';

Autenticação

A autenticação é baseada em dois parâmetros, name e password; Esses parâmetros são recebidos no construtor da classe ClearSale:

final clearsale = ClearSale(
    userName: "username", 
    password: "password",
);

É possível realizar a autenticação de duas maneiras:

  • No construtor
final clearsale = ClearSale(
    userName: "username", 
    password: "password",
    automaticAuthenticate: true,
);
  • Método authenticate
final clearsale = ClearSale(
    userName: "username", 
    password: "password",
    automaticAuthenticate: false,
);
clearsale.authenticate();

NOTA: A autenticação no construtor é realizada por padrão caso a propriedade automaticAuthenticate não seja informada.

Ações

O package permite realizar as seguintes ações: |Método|Descrição| |---|---| |analysisRequest|Solicitação de análise| |reanalysisRequest|Solicitação de reanálise| |chargebackMarking|Marcação de estorno| |statusConsult|Consulta de status de uma solicitação| |statusUpdate|Alteração de status de uma solicitação. Importante: Os status de atualização devem ser combinados com a equipe de integração.|

Fingerprint

O campo sessionID do objeto AnalisysRequestModel (utilizado nas ações de Análise e Reanálise) deve ser preenchido com a fingerprint do dispositivo.

O package para gerar esse código está sendo desenvolvido.

Resiliência de autenticação

Esse é o fluxo de autenticação executado em todas as ações:

image

Erros Tratados

Todos os erros recebem por herança a estrutura da classe Failure, que tem 3 propriedades principais:

  • code: Código para identificar o erro;
  • message: Mensagem padrão do erro;
  • innerException: Exceção que causou o erro;

Esses são os erros tratados:

Validação de parâmetros

CódigoErroMensagemDescrição
null-token-failureNullTokenFailureÉ necessário preencher o token para continuar.Token nulo
empty-token-failureEmptyTokenFailureÉ necessário preencher o token para continuar.Token vazio
invalid-field-${fieldName}-failureInvalidFieldFailureÉ necessário preencher o campo $fieldName para continuar.Algum parâmetro informado está vazio ou nulo

<br/>

Tratamento retorno Clearsale

CódigoErroMensagemDescrição
empty-datasource-responseEmptyDatasourceResponseFailureEndereço não encontradoMaplink não encontrou nenhum endereço
null-datasource-responseNullDatasourceResponseFailurenullMaplink não retornou nada no body do response
endpoint-message-failureEndpointMessageFailureMensagem de erro retornada pelo endpointErro tratado pela Clearsale. Tem a propriedade status com o status do erro.
endpoint-invalid-statuscode-failureEndpointInvalidStatusCodeFailurenullResposta não tratada pelo package. Tem as propriedades int statusCode e String body.

Libraries

clearsale