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 AnalysisRequestModel (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ódigo Erro Mensagem Descrição
null-token-failure NullTokenFailure É necessário preencher o token para continuar. Token nulo
empty-token-failure EmptyTokenFailure É necessário preencher o token para continuar. Token vazio
invalid-field-${fieldName}-failure InvalidFieldFailure É necessário preencher o campo $fieldName para continuar. Algum parâmetro informado está vazio ou nulo

Tratamento retorno Clearsale

Código Erro Mensagem Descrição
empty-datasource-response EmptyDatasourceResponseFailure Endereço não encontrado Clearsale não encontrou nenhum endereço
null-datasource-response NullDatasourceResponseFailure null Clearsale não retornou nada no body do response
endpoint-message-failure EndpointMessageFailure Mensagem de erro retornada pelo endpoint Erro tratado pela Clearsale. Tem a propriedade status com o status do erro.
endpoint-invalid-statuscode-failure EndpointInvalidStatusCodeFailure null Resposta não tratada pelo package. Tem as propriedades int statusCode e String body.

Libraries

clearsale