Árvore de páginas


01. VISÃO GERAL

A API alerts tem como objetivo trabalhar com ações relacionadas à configurações de alertas no sistema de gestão Plano de Saúde.


VERBO GET

Através do verbo GET, as APIs podem retornar os dados dos alertas cadastrados (tabela BQ7) e os dados do MV_PLTOP. 


VERBO PUT

Através do verbo PUT, as APIs permitem realizar atualizações dos alertas através da rotina (PLSA777) e o conteúdo do MV_PLTOP.


02. CONFIGURAÇÕES INI

Para iniciar a instalação do processo, devemos configurar seu INI Protheus com a funcionalidade REST para habilitar o acesso as API´s. Documentos auxiliares:

1. Configuração do REST do Protheus

Com o INI Protheus configurado, a nomenclatura das API´s ficará no formato: <url + Porta + chave rest definidos no INI Protheus> +  /totvsHealthPlans/v1/alerts. Exemplo:

image2020-12-17_15-28-30.png

Logo, a minha URL será: http://localhost:8080/rest/totvsHealthPlans/v1/alerts


03. VERBOS

Seguem os verbos disponíveis na API:

VerboPathQueryParamsPathParamDescrição
GETalerts

Opcional:

code - Código do alerta (BQ7_CODIGO)


Retorna dados de alertas
GETalerts/settings



Retorna conteúdo do MV_PLTOP
PUTalerts/{id}
id - BQ7_CODIGOAtualiza dados de um alerta
PUTalerts/settings

Atualiza conteúdo do MV_PLTOP


04. EXEMPLO DE CHAMADA DA API


GET alerts

        http://localhost:8080/rest/totvsHealthPlans/v1/alerts

        Exemplo de requisição usando o queryParam code para filtrar o alerta de código 000001.

        Caso queira que devolva todos os alertas, é só retirar o queryParam code. 


GET alerts/settings

http://localhost:8080/rest/totvsHealthPlans/v1/alerts/settings



PUT alerts - Atualizando um alerta

Exemplo atualizando um alerta que tem o BQ7_CODIGO igual a 000001.

http://localhost:8080/rest/totvsHealthPlans/v1/alerts/000001


Exemplo de body:


JSON Solicitação PUT
{
            "code": "000001",
            "description": "Alerta após resposta na mensageria(Auditoria)",
            "sendNotification": "1",
            "txtNotification": "A guia [%B53->B53_NUMGUI%] recebeu uma resposta",
            "titleNotification": "Você tem uma nova mensagem",
            "typeNotification": "1",
            "sendEmail": "1",
            "txtEmail": "<h1 class=\"title\">\r\n                                       Atualização na guia em auditoria\r\n                                    </h1>\r\n                                    <p> Olá, <strong>  [%BAU->BAU_NOME%]!</strong> </p>\r\n                                    <p> Sua guia [%B53->B53_NUMGUI%] recebeu uma nova mensagem! </p>\r\n<div style=\"border: 1px solid black; padding: 10px;\">\r\n        <p>[%cParam%]</p>\r\n    </div>",
            "sendWpp": "0",
            "codeTemplate": "",
            "useLayout": "1"
}


PUT alerts/settings - Atualizando MV_PLTOP

http://localhost:8080/rest/totvsHealthPlans/v1/alerts/settings

A API alerts/settings criptografa o conteúdo informado no operatorID antes de fazer a gravação no banco de dados. Exemplo de body da requisição:

05. ATRIBUTOS DE RESPOSTA


Solicitação GET alerts

AtributoCampoTipo
code

BQ7_CODIGO

Caracter
descriptionBQ7_DESCRICaracter
sendNotificationBQ7_NOTIFCaracter
txtNotificationBQ7_TXTNOTCaracter
titleNotificationBQ7_TITNOTCaracter
typeNotificationBQ7_TIPNOTCaracter
sendEmailBQ7_EMAILCaracter
txtEmailBQ7_TXTEMACaracter
sendWppBQ7_WPPCaracter
codeTemplateBQ7_TEMPLACaracter
useLayoutBQ7_LAYPADCaracter


Solicitação GET alerts/settings

AtributoCampoTipo
operatorID

MV_PLTOP

Caracter

06. EXEMPLOS DE JSON DE RESPOSTA


Solicitação GET alerts:

Sucesso 202 - Alertas encontrados
{
    "hasNext": false,
    "items": [
        {
            "code": "000001",
            "description": "Alerta após resposta na mensageria(Auditoria)",
            "sendNotification": "1",
            "txtNotification": "A guia [%B53->B53_NUMGUI%] recebeu uma resposta",
            "titleNotification": "Você tem uma nova mensagem",
            "typeNotification": "1",
            "sendEmail": "1",
            "txtEmail": "<h1 class=\"title\">\r\n                                       Atualização na guia em auditoria\r\n                                    </h1>\r\n                                    <p> Olá, <strong>  [%BAU->BAU_NOME%]!</strong> </p>\r\n                                    <p> Sua guia [%B53->B53_NUMGUI%] recebeu uma nova mensagem! </p>\r\n<div style=\"border: 1px solid black; padding: 10px;\">\r\n        <p>[%cParam%]</p>\r\n    </div>",
            "sendWpp": "0",
            "codeTemplate": "",
            "useLayout": "1"
        },
        {
            "code": "000002",
            "description": "Alerta após resposta na mensageria(Faturamento)",
            "sendNotification": "1",
            "txtNotification": "O protocolo [%BCI->BCI_CODPEG%] recebeu uma resposta.",
            "titleNotification": "Você tem uma nova mensagem",
            "typeNotification": "1",
            "sendEmail": "1",
            "txtEmail": "<h1 class=\"title\">\r\n                                       Atualização no protocolo de faturamento\r\n                                    </h1>\r\n                                    <p> Olá, <strong>  [%BCI->BCI_NOMRDA%]!</strong> </p>\r\n                                    <p> Seu protocolo [%BCI->BCI_CODPEG%] recebeu uma nova mensagem! </p>\r\n<div style=\"border: 1px solid black; padding: 10px;\">\r\n        <p>[%cParam%]</p>\r\n    </div>",
            "sendWpp": "0",
            "codeTemplate": "",
            "useLayout": "1"
        }
    ]
}


Solicitação GET alerts/settings:

Sucesso 200 - Alertas encontrados
{
    "hasNext": false,
    "items": [
        {
            "operatorID":"5ðŽZ­èÏÕÁ•°pÔ3‡á‰¨íðÞ,這>ÛfÝ"
        }
    ]
}


Solicitação PUT alerts - Alteração de Alertas

Falha - HTTP Status 400

Falha - Alerta não encontrado
{
    "code": "0002",
    "message": "Erro ao atualizar registro!",
    "detailedMessage": "Não foi possível fazer a atualização, tente novamente mais tarde"
}


Solicitação PUT alerts/settings - Alteração MV_PLTOP

Falha - HTTP Status 400

Falha - Campo obrigatório não informado
{
    "code": "0001",
    "message": "Campo obrigatório não informado",
    "detailedMessage": "'operatorID'"
}
  • Sem rótulos