API de listagem e consultar os casos (Cases), anexos (Attachments) e documentos (Documents) exportados da plataforma Salesforce Sales da Comporte e consumidos em um banco de dados MySQL.
Para realizar as requisições nos endpoints da API, é necessário se autenticar passando no cabeçalho da requisição um token fixo. O token é alcançado através da codificação da palavra passe 'Claravista@2022' utilizando base64
.
É recomendável utilizar o método btoa()
, nativo do JavaScript, que codifica utf-16
para base64
:
btoa("exemplo");
// 'ZXhlbXBsbw=='
No cabeçalho da requisição teríamos algo parecido com:
{
Authorization: `${btoa("Claravista@2020")}`;
}
As datas são validadas na aplicação utilizando a expressão regular /^(\d{2,4}-?){3}(\s(\d{2}:?){3})?$/
. Sendo assim, as datas aceitas devem conter o formato ano, mês e dia (yyyy-mm-dd
) podendo ou não conter horários (yyyy-mm-dd hh:mm:ss
).
Exemplos de algumas datas válidas e inválidas:
- 2020-04-01
- 2020-08-01 14:00:00
- 01-01-2022
- 01-01-2022 00:00
- 01/01/2022
- 01/01/2022 00:00
- 2022/01/01
Para a obtenção da lista de casos armazenados na base de dados, foram disponibilizadas as rotas /cases/:id
e /cases
com a possibilidade de adição de filtros através de query params na requisição.
Para obter a listagem completa dos casos, basta enviar uma requisição GET
para o endpoint /cases
e em caso de sucesso (status code 200
) uma lista paginada será retornada. É possível definir através dos query params limit
e page
o limite de registros retornados e a página referente, exemplo /cases?limit=500&page=2
. Caso esses parâmetros sejam omitidos, os valores assumidos como padrão serão limit = 100
e page = 1
.
Outros parâmetros também são aceitos como filtro na requisição, alguns deles são:
email
: E-mail de contato do cliente, presente na coluna CONTACTEMAIL;cpf
: CPF do cliente, presente nas colunas CPF_DO_PORTADOR__C ou CPF_DO_PORTADOR_PIX__C;contact
: Telefone de contato do cliente, presente nas colunas CONTACTMOBILE ou CONTACTPHONE;createdDate
: Data de abertura do caso, presente na coluna CREATEDDATE. Retornará todos os casos com a data de abertura maior ou igual ao valor fornecido. Leia o formato de data aceito;closedDate
: Data de fechamento do caso, presente na coluna CLOSEDDATE. Retornará todos os casos com a data de fechamento menor ou igual ao valor fornecido. Leia o formato de data aceito;
Para uma pesquisa mais direta e objetiva, é possível efetuar uma busca por identificador para o endpoint /cases/:id
, substituindo :id
pelo Id do caso (ID) ou o número do caso (CASENUMBER) (obtido na listagem anterior). Exemplo /cases/5003k00001jRr11AAC
(Id) ou /cases/00050085
(Nº do caso).
Alguns casos possuem comentários adicionais que podem ser obtidos através do endpoint /cases/:id/comments
, substituindo :id
pelo Id do caso (ID).
Para obter a listagem de anexos contendo as características, basta enviar uma requisição GET
para o endpoint /attachments
e em caso de sucesso (status code 200
) uma lista paginada será retornada. É possível definir através dos query params limit
e page
o limite de registros retornados e a página referente, exemplo /attachments?limit=100&page=2
. Caso esses parâmetros sejam omitidos, os valores assumidos como padrão serão limit = 100
e page = 1
.
Outro parâmetro também é aceito como filtro na requisição, sendo ele:
sourceId
: Identificador presente no caso relacionado ao anexo;
Para obter o conteúdo do anexo é necessário requisitar ao endpoint /attachments/:id
, substituindo :id
pelo ID do anexo (obtido na listagem anterior), exemplo /attachments/00P3k00001EKwAqEAL
.
Para obter a listagem de documentos contendo as características, basta enviar uma requisição GET
para o endpoint /documents
e em caso de sucesso (status code 200
) uma lista paginada será retornada. É possível definir através dos query params limit
e page
o limite de registros retornados e a página referente, exemplo /documents?limit=100&page=2
. Caso esses parâmetros sejam omitidos, os valores assumidos como padrão serão limit = 100
e page = 1
.
Para obter o conteúdo do documents é necessário requisitar ao endpoint /documents/:id
, substituindo :id
pelo ID do documento (obtido na listagem anterior), exemplo /documents/0153k000008zRY6AAM
.
Para obter a listagem completa das contas de usuários, basta enviar uma requisição GET
para o endpoint /accounts
e em caso de sucesso (status code 200
) uma lista paginada será retornada. É possível definir através dos query params limit
e page
o limite de registros retornados e a página referente, exemplo /accounts?limit=500&page=2
. Caso esses parâmetros sejam omitidos, os valores assumidos como padrão serão limit = 100
e page = 1
.
Outros parâmetros também são aceitos como filtro na requisição, alguns deles são:
email
: E-mail de contato do cliente, presente na coluna PERSONEMAIL;cpf
: CPF do cliente, presente na coluna CNPJCPF__Ccontact
: Telefone de contato do cliente, presente nas colunas PERSONMOBILEPHONE ou PHONE;
Para uma pesquisa mais direta e objetiva, é possível efetuar uma busca por identificador para o endpoint /accounts/:id
, substituindo :id
pelo ID da conta de usuário (ID) (obtido na listagem anterior). Exemplo /accounts/5003k00001kmUNJAA2
(ID).