Mudanças entre as edições de "Controllr/API/REST-HTTP"

De BrByte Wiki
< Controllr‎ | API
 
(16 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 1: Linha 1:
===API===
+
==='''API'''===
  
Instruções de como capturar informações dos seus clientes.  
+
Exemplo de requisição pura. Feita com Telnet para ilustrar como deve ser montada a requisição.
  
== Requisição de LOGIN ==
+
Nestes exemplos estarei usando o IP 192.168.1.2 como EXEMPLO, este IP deverá ser o do servidor que deseja conectar.
  
Requisição POST para http://[IP-SERVIDOR]/login
+
<div>
com body username=USER&password=PASS
+
<span class="label label-info">POST</span> <span class="label label-concrete">/login</span>
 +
</div>
 +
<blockquote><pre>
 +
curl -i -X POST \
 +
    -H "Content-Type:application/x-www-form-urlencoded" \
 +
    -H "Accept:application/json" \
 +
    -d "username=admin" \
 +
    -d "password=admin" \
 +
    <nowiki> 'http://[$IP-do-servidor]/login'</nowiki>
 +
</pre></blockquote>
 +
 
 +
 
 +
== '''Requisição de LOGIN''' ==
 +
 
 +
Requisição POST para http://[IP-SERVIDOR]/login  
 +
Com body username=USER&password=PASS
 +
 
 +
<div>
 +
<span class="label label-info">POST</span> <span class="label label-concrete">/login</span>
 +
</div>
 +
<blockquote><pre>
 +
telnet 192.168.1.2 8080
 +
 
 +
POST /login HTTP/1.1
 +
Host: 192.168.142.23:8080
 +
Content-Type: application/x-www-form-urlencoded
 +
Content-Length: 29
 +
 
 +
username=admin&password=admin
 +
</pre></blockquote>
  
Autenticação
 
  
 
<div>
 
<div>
<span class="label label-info">POST</span>
+
<span class="label label-success">Resposta</span> <span class="label label-concrete">JSON</span>
<span class="label label-concrete">/login</span>
 
 
</div>
 
</div>
 +
<blockquote class="blockquote-neutral"><pre>
 +
Resposta
  
 +
HTTP/1.1 200 OK
 +
Server: nginx/1.10.2
 +
Date: Sat, 27 Apr 2019 19:41:49 GMT
 +
Content-Type: application/json
 +
Content-Length: 17
 +
Connection: keep-alive
 +
Set-Cookie: BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a; expires=Sun, 26 Apr 2020 19:51:49 GMT; path=/
 +
Access-Control-Allow-Credentials: true
 +
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
 +
 +
{"success": true}
 +
</pre></blockquote>
 +
 +
<div>
 +
<span class="label label-info">POST</span> <span class="label label-concrete">/login</span>
 +
</div>
 
<blockquote><pre>
 
<blockquote><pre>
 +
 
curl -i -X POST \
 
curl -i -X POST \
 
     -H "Content-Type:application/x-www-form-urlencoded" \
 
     -H "Content-Type:application/x-www-form-urlencoded" \
Linha 22: Linha 68:
 
     -d "password=admin" \
 
     -d "password=admin" \
 
     <nowiki> 'http://[$IP-do-servidor]/login'</nowiki>  
 
     <nowiki> 'http://[$IP-do-servidor]/login'</nowiki>  
 +
 
</pre></blockquote>
 
</pre></blockquote>
  
Linha 28: Linha 75:
 
Na resposta do Login, capturar o cookie que será usado para requisição
 
Na resposta do Login, capturar o cookie que será usado para requisição
  
<div><span class="label label-success">Resposta</span><span class="label label-concrete">JSON</span></div>
+
<div>
 
+
<span class="label label-success">Resposta</span> <span class="label label-concrete">JSON</span>
 +
</div>
 
<blockquote class="blockquote-neutral"><pre>
 
<blockquote class="blockquote-neutral"><pre>
 
HTTP/1.1 200 OK
 
HTTP/1.1 200 OK
Linha 37: Linha 85:
 
Content-Length: 17
 
Content-Length: 17
 
Connection: keep-alive
 
Connection: keep-alive
Set-Cookie: BRBOSCookie=c7a361caa000fab3680a558910c4f33c; expires=Sat, 20 Apr 2019 20:56:26 GMT; path=/
+
Set-Cookie: BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a; expires=Sat, 20 Apr 2019 20:56:26 GMT; path=/
 
    
 
    
 
{"success": true}
 
{"success": true}
Linha 44: Linha 92:
 
Para capturar as informações do Dashboard, fazer uma requisição usando o Cookie previamente autenticado.
 
Para capturar as informações do Dashboard, fazer uma requisição usando o Cookie previamente autenticado.
  
<div><span class="label label-info">POST</span><span class="label label-concrete">/controllrctl/dashboard/info</span></div>
+
<div>
 +
<span class="label label-info">POST</span> <span class="label label-concrete">/controllrctl/dashboard/info</span>
 +
</div>
  
 
<blockquote><pre>
 
<blockquote><pre>
 +
 
curl -i -X GET \
 
curl -i -X GET \
 
   -H "Accept:application/json" \
 
   -H "Accept:application/json" \
   -H "Cookie:BRBOSCookie=af3a254b467d7480173f1d739a380d1e" \
+
   -H "Cookie:BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a" \
 
     <nowiki> 'http://192.168.142.23:8080/controllrctl/dashboard/info'</nowiki>
 
     <nowiki> 'http://192.168.142.23:8080/controllrctl/dashboard/info'</nowiki>
 +
 
</pre></blockquote>
 
</pre></blockquote>
  
  
=='''Capturar Informações do Cliente'''==
+
OBS: A área administrativa, deve ser acessada através da porta WEB que por padrão é a 8080
  
  curl -i -X POST \
+
Exemplo <nowiki>http://192.168.144.10:8080</nowiki>
        -H "Content-Type:application/x-www-form-urlencoded" \
+
 
        -H "Accept:application/json" \
+
É diferente do acesso dá área do cliente, que utiliza por padrão a porta 80, através do acesso do Hotsite.
        -d "username=teste" \
 
        -d "password=12345678" \
 
      <nowiki>'http://192.168.142.23/site_ctl/config/info'</nowiki>
 
  
<div><span class="label label-success">Resposta</span><span class="label label-concrete">JSON</span></div>
 
 
{
 
    "success": true,
 
    "facebook": {
 
        "page": <nowiki>"https://www.facebook.com/ispcontrollr"</nowiki>,
 
        "title": "FACEBOOK"
 
    },
 
    "anatel": {
 
        "scm": "00000",
 
        "title": "Provedor Licenciado"
 
    },
 
    "title": "Meu Provedor",
 
    "theme": "brbyte-light",
 
    "support_open_time": 5,
 
    "print_contract": 1,
 
    "change_password": 1
 
}
 
  
 +
Para listagem dos clientes usando algum filtro especifico deve montar a requisição com os parâmetros corretos.
 +
Utilizando o F12 do seu navegador, irá visualizar os parâmetros que são utilizáveis para montagem da sua URL.
 +
Caminho da opção do desenvolvedor: Aba Network > XHR > Headers
  
=='''Alterar senha do Login'''==
 
  
<div><span class="label label-info">POST</span><span class="label label-concrete">/session/setpassword</span></div>
+
<div class="img-responsive align-center">[[Arquivo:controllrctl-client-list.png | link=]]</div>
 +
  
{| class='table table-responsive table-striped'
+
==='''FORM DATA'''===
! PROPRIEDADE
+
 
! TIPO
+
{| class="table table-bordered table-striped" style="margin: auto;"
! TAMANHO
+
! style="text-align:center"| Propriedade
! OBRIGATÓRIO
+
! style="text-align:center"| Descrição
! DESCRIÇÃO
+
! style="text-align:center"| Tipo
|-  
+
! style="text-align:center"| Tamanho
| user_password || Texto || 8~16 || Sim || Senha
+
|-
|-  
+
| style="text-align:center;" | <span style="font-family:Courier New, Courier, monospace"><span style="color:#00CD00"> '''start''' </span></span> || Parâmetro da posição que deseja que seja listado os clientes. Sendo '''0 (zero)''' a primeira posição || Número|| 0 ~ n
| user_password_repeat || Texto || 8~16 || Sim || Senha de novo
+
|-
 +
| style="text-align:center;" | <span style="font-family:Courier New, Courier, monospace"><span style="color:#00CD00"> '''limit''' </span></span> || Parâmetro para setar o valor da quantidade de clientes que devem ser listados na requisição URL || Número|| 1 ~ n
 +
|-
 +
| style="text-align:center;" | <span style="font-family:Courier New, Courier, monospace"><span style="color:#00CD00"> '''sort''' </span></span> || Nome da coluna da tabela que deseja ordenar a sua listagem|| Texto || 2 - 45
 +
|-
 +
| style="text-align:center;" | <span style="font-family:Courier New, Courier, monospace"><span style="color:#00CD00"> '''dir''' </span></span> || Parâmetro de ordenação do maior para o menor ou vice-versa. Sendo '''ASC''' - para ordenar do '''menor''' para o '''maior''' e '''DESC''' - para ordenar do '''maior''' para o '''menor''' || Booleano || -
 +
|-
 +
| style="text-align:center;" | <span style="font-family:Courier New, Courier, monospace"><span style="color:#00CD00"> '''where''' </span></span> ||Parâmetro de montagem de filtro para listagem de clientes específicos. || Where || -
 
|-
 
|-
 
|}
 
|}
  
<blockquote><pre>
 
curl -i -X POST \
 
    -H "Content-Type:application/x-www-form-urlencoded" \
 
    -H "Accept:application/json" \
 
    -d "user_password: Nova senha" \
 
    -d "user_password_repeat: Nova senha" \
 
    <nowiki>'http://192.168.142.23/session/setpassword'</nowiki>
 
</pre></blockquote>
 
  
<div><span class="label label-success">Resposta</span><span class="label label-concrete">JSON</span></div>
 
  
<blockquote class="blockquote-neutral"><pre>
+
==='''Comandos Where'''===
{
 
    "success": true,
 
    "total": 1,
 
    "results": [
 
        {
 
            "client_username": "teste",
 
            "client_pk": 1
 
        }
 
    ]
 
}
 
</pre></blockquote>
 
  
=='''Listagem do Contratos'''==
+
Com a propriedade Where pode ser montado vários filtros para listar o que deseja, sendo cliente por CPF/CNPJ, cobranças em atraso, usuário bloqueado, etc...
  
  curl -i -X POST \
+
A montagem do Where é do tipo json.  
        -H "Content-Type:application/x-www-form-urlencoded" \
 
        -H "Accept:application/json" \
 
        -d "limit: 10" \
 
        -d "start: 0" \
 
        -d "page: 0" \
 
        -d "sort: contract_pk" \
 
        -d "dir: ASC" \
 
      <nowiki>'http://192.168.142.23/controllr_client/contract/list'</nowiki>
 
  
<div><span class="label label-success">Resposta</span><span class="label label-concrete">JSON</span></div>
+
Para montar o filtro pode usar 3 tipos:
  
  {
+
  * field:
    "success": true,
 
    "total": 1,
 
    "results": [
 
        {
 
            "contract_pk": 3,
 
            "contract_number": 3,
 
            "contract_pay_day": 10,
 
            "contract_amount": "1",
 
            "contract_date_cad": "2018-05-15 16:19:45"
 
        }
 
    ]
 
}
 
  
 +
Field é usado para selecionar qual é a coluna da tabela.
  
=='''Listagem de Cobranças'''==
+
* oper:
  
  curl -i -X POST \
+
É o código da operação do filtro que irá realizar com essa coluna selecionada.
        -H "Content-Type:application/x-www-form-urlencoded" \
+
Criamos 22 códigos de operações.
        -H "Accept:application/json" \
 
        -d "limit: 15" \
 
        -d "start: 0" \
 
        -d "page: 0" \
 
        -d "sort: invoice_date_due" \
 
        -d "dir: DESC" \
 
      <nowiki>'http://192.168.142.23/invoice_ctl/invoice/list'</nowiki>
 
  
Resposta da captura
+
"oper":<b style="color:red">1</b> Menor que <b style="color:red"> < </b>
 +
"oper":<b style="color:red">2</b> Maior que <b style="color:red"> > </b>
 +
"oper":<b style="color:red">3</b> Menor ou igual à <b style="color:red"> <= </b>
 +
"oper":<b style="color:red">4</b> Maior ou igual à <b style="color:red"> >= </b>
 +
"oper":<b style="color:red">5</b> Igual à <b style="color:red"> = </b>
 +
"oper":<b style="color:red">6</b> Diferente de <b style="color:red"> != </b> ou <b style="color:red"> <> </b>
 +
"oper":<b style="color:red">7</b> É <b style="color:red"> IS </b>
 +
"oper":<b style="color:red">8</b> Não é <b style="color:red"> IS NOT </b>
 +
"oper":<b style="color:red">9</b> <b style="color:red"> LIKE </b>
 +
"oper":<b style="color:red">10</b> <b style="color:red"> ILIKE </b>
  
{
 
    "success": true,
 
    "total": 2,
 
    "results": [
 
        {
 
            "contract_pk": null,
 
            "contract_number": null,
 
            "invoice_pk": 11,
 
            "bank_account_code": "0",
 
            "invoice_gn_link": null,
 
            "invoice_date_due": "2018-05-11",
 
            "invoice_amount_document": "15",
 
            "invoice_date_credit": "2018-05-11",
 
            "invoice_amount_paid": "15.00",
 
            "invoice_type": 1,
 
            "invoice_state": 0,
 
            "invoice_obs": 4
 
        },
 
        {
 
            "contract_pk": null,
 
            "contract_number": null,
 
            "invoice_pk": 2,
 
            "bank_account_code": "0",
 
            "invoice_gn_link": null,
 
            "invoice_date_due": "2018-05-09",
 
            "invoice_amount_document": "123",
 
            "invoice_date_credit": "2018-05-14",
 
            "invoice_amount_paid": "123.00",
 
            "invoice_type": 1,
 
            "invoice_state": 0,
 
            "invoice_obs": 4
 
        }
 
    ]
 
}
 
  
 +
01.    OPER_NONE: (p = 0),<br/>
 +
02.    OPER_LESS_THAN: ++p,<br/>
 +
03.    OPER_GREATER_THAN: ++p,<br/>
 +
04.    OPER_LESS_THAN_OR_EQUAL_TO: ++p,<br/>
 +
05.    OPER_GREATER_THAN_OR_EQUAL_TO: ++p,<br/>
 +
06.    OPER_EQUAL: ++p,<br/>
 +
07.    OPER_NOT_EQUAL: ++p,<br/>
 +
08.    OPER_IS: ++p,<br/>
 +
09.    OPER_IS_NOT: ++p,<br/>
 +
10.    OPER_LIKE: ++p,<br/>
 +
11.    OPER_ILIKE: ++p,<br/>
 +
12.    OPER_INET_IS_LESS_THAN: ++p,<br/>
 +
13.    OPER_INET_IS_LESS_THAN_OR_EQUAL: ++p,<br/>
 +
14.    OPER_INET_EQUALS: ++p,<br/>
 +
15.    OPER_INET_IS_GREATER_OR_EQUAL: ++p,<br/>
 +
16.    OPER_INET_IS_GREATER_THAN: ++p,<br/>
 +
17.    OPER_INET_IS_NOT_EQUAL: ++p,<br/>
 +
18.    OPER_INET_IS_CONT_W: ++p,<br/>
 +
19.    OPER_INET_IS_CONT_W_OR_EQUALS: ++p,<br/>
 +
20.    OPER_INET_CONT: ++p,<br/>
 +
21.    OPER_INET_CONT_OR_EQUALS: ++p,<br/>
 +
22.    OPER_IN: ++p<br/>
  
=='''Listagem de Conexões'''==
 
  
  
  curl -i -X POST \
 
        -H "Content-Type:application/x-www-form-urlencoded" \
 
        -H "Accept:application/json" \
 
        -d "limit: 15" \
 
        -d "start: 0" \
 
        -d "page: 0" \
 
        -d "sort: contract_pk" \
 
        -d "dir: DESC" \
 
      <nowiki>'http://192.168.142.23/controllr_client/cpe/list'</nowiki>
 
  
  
Resposta da captura
 
  
{
 
    "success": true,
 
    "total": 1,
 
    "results": [
 
        {
 
            "network_cpe_pk": 2,
 
            "network_cpe_automac": false,
 
            "network_cpe_autoip": false,
 
            "network_cpe_status": 0,
 
            "network_cpe_ip": "",
 
            "network_cpe_mac": "",
 
            "network_cpe_mac_status": 2,
 
            "network_cpe_ip_status": 2,
 
            "network_cpe_username": "123",
 
            "network_cpe_password": "123",
 
            "network_cpe_authentication_type": 3,
 
            "network_cpe_date_cad": "2018-05-15 16:20:34",
 
            "network_cpe_deleted": false,
 
            "network_cpe_commom_interface": null,
 
            "network_cpe_commom_device_name": null,
 
            "network_cpe_commom_lastip": null,
 
            "network_cpe_commom_rates": null,
 
            "network_cpe_commom_rx_rate": null,
 
            "network_cpe_commom_tx_rate": null,
 
            "network_cpe_commom_distance": null,
 
            "network_cpe_commom_tx_ccq": null,
 
            "network_cpe_commom_signal_rx": null,
 
            "network_cpe_commom_signal_tx": null,
 
            "network_cpe_commom_noisefloor": null,
 
            "network_cpe_commom_idle": null,
 
            "network_cpe_commom_tx_bytes": null,
 
            "network_cpe_commom_rx_bytes": null,
 
            "network_cpe_especdata": null,
 
            "network_cpe_commom_rx_ccq": null,
 
            "network_cpe_commom_ping": null,
 
            "network_cpe_commom_uptime": null,
 
            "network_cpe_lending": 0,
 
            "network_cpe_lastupdate": null,
 
            "network_cpe_reduced_speed": false,
 
            "network_cpe_reduced_speed_date": null,
 
            "network_cpe_turbo_active": false,
 
            "network_cpe_wifi_encryption_type": 0,
 
            "network_cpe_wifi_encryption_password": null,
 
            "network_cpe_access_login": "",
 
            "network_cpe_access_password": "",
 
            "network_cpe_access_port": "22",
 
            "network_cpe_longitude": "0",
 
            "network_cpe_latitude": "0",
 
            "network_cpe_circuit_id": "",
 
            "network_cpe_circuit_id_hex": null,
 
            "network_cpe_fiber": 0,
 
            "network_cpe_fiber_onu_mac": null,
 
            "network_cpe_fiber_device_pk": null,
 
            "network_cpe_fiber_onu_pppoe_svc_name": null,
 
            "network_cpe_req_origin": 0,
 
            "suppliers_pk": null,
 
            "network_devices_pk": 3,
 
            "network_cpe_model_pk": null,
 
            "radius_plans_pk": 1,
 
            "contract_pk": 3,
 
            "network_subnets_pk": 1,
 
            "client_pk": 1,
 
            "panel_pk": 1,
 
            "network_cpe_control_pk": 0
 
        }
 
    ]
 
}
 
  
  
=='''Listagem de Suportes'''==
 
  
  curl -i -X POST \
+
{| class="table wikitable" style="margin: auto;"
        -H "Content-Type:application/x-www-form-urlencoded" \
+
| style="text-align:center;" | <span style="font-family:Courier New, Courier, monospace"><span style="color:#00CD00"> '''field''' </span></span> || colspan="3" | Marque a coluna que deseja usar esse filtro e também pode usar com a opção '''AND''', para usar mais de uma coluna no filtro.
        -H "Accept:application/json" \
+
|-
        -d "limit: 10" \
+
| style="text-align:center;" | <span style="font-family:Courier New, Courier, monospace"><span style="color:#00CD00"> '''oper''' </span></span> || colspan="3" | É código do filtro que irá usar para a coluna marcada no <span style="font-family:Courier New, Courier, monospace"><span style="color:#00CD00"> '''field''' </span></span>.
        -d "start: 0" \
+
|-
        -d "page: 0" \
+
| ||"oper":<b style="color:red">1</b>||colspan="2"| Menor que <b style="color:red"> < </b>
        -d "sort: os_date_entry" \
+
|-
        -d "dir: ASC" \
+
| ||"oper":<b style="color:red">2</b>||colspan="2"| Maior que <b style="color:red"> > </b>
      <nowiki>'http://192.168.142.23/controllr_client/support/list'</nowiki>
+
|-
 +
| ||"oper":<b style="color:red">3</b>||colspan="2"| Menor ou igual à <b style="color:red"> <= </b>
 +
|-
 +
| ||"oper":<b style="color:red">4</b>||colspan="2"| Maior ou igual à <b style="color:red"> >= </b>
 +
|-
 +
| ||"oper":<b style="color:red">5</b>||colspan="2"| Igual à <b style="color:red"> = </b>
 +
|-
 +
| ||"oper":<b style="color:red">6</b>||colspan="2"| Diferente de <b style="color:red"> != </b> ou <b style="color:red"> <> </b>
 +
|-
 +
| ||"oper":<b style="color:red">7</b>||colspan="2"| É <b style="color:red"> IS </b>
 +
|-
 +
| ||"oper":<b style="color:red">8</b>||colspan="2"| Não é <b style="color:red"> IS NOT </b>
 +
|-
 +
| ||"oper":<b style="color:red">9</b>||colspan="2"| <b style="color:red"> LIKE </b>
 +
|-
 +
| ||"oper":<b style="color:red">10</b>||colspan="2"| <b style="color:red"> ILIKE </b>
 +
|-
 +
| style="text-align:center;" | <span style="font-family:Courier New, Courier, monospace"><span style="color:#00CD00"> '''value''' </span></span> || Valor da coluna que deseja utilizar no filtro || Inteiro || Depende da coluna que irá filtrar
 +
|-
 +
|}
  
  
Resposta da captura
 
  
{
 
    "success": true,
 
    "total": 1,
 
    "results": [
 
        {
 
            "support_protocol": "2018051515386",
 
            "os_obs": "Sua descrição",
 
            "os_date_entry": "2018-05-15 15:38:45",
 
            "os_date_soluction": null,
 
            "os_date_sched": "2018-05-15 15:38:45",
 
            "os_done": 0,
 
            "os_amount": null,
 
            "task_name": "Viabilidade",
 
            "task_desc": "Teste de viabilidade técnica para instalação de internet"
 
        }
 
    ]
 
}
 
  
=='''Criação de Suporte Técnico'''==
+
{| class="table table-bordered table-striped" style="margin: auto;"
 +
! style="text-align:center"| Start
 +
|-
 +
|Parâmetro da posição que deseja que seja listado os clientes. Sendo '''0 (zero)''' a primeira posição
 +
|-
 +
|}
  
  curl -i -X POST \
 
        -H "Content-Type:application/x-www-form-urlencoded" \
 
        -H "Accept:application/json" \
 
        -d "priority: 0" \
 
        -d "task_pk: 1" \
 
        -d "phone: 67998083499" \
 
        -d "os_obs: Sua Descrição" \
 
      <nowiki>'http://192.168.142.23/controllr_client/support/create'</nowiki>
 
  
 +
{| class="table table-bordered table-striped" style="margin: auto;"
 +
! style="text-align:center"| Limit
 +
|-
 +
| Parâmetro para setar o valor da quantidade de clientes que devem ser listados na requisição URL
 +
|-
 +
|}
  
Resposta da captura
 
  
{
+
{| class="table table-bordered table-striped" style="margin: auto;"
    "success": true,
+
! style="text-align:center" | Sort
    "total": 1,
+
|-
    "results": [
+
|Parâmetro de ordenação da coluna de sua listagem. Por padrão é ordenado pela coluna '''client_complete_name''', mas pode escolher qualquer outra de sua escolha
        {
+
|-
            "os_pk": -1,
+
|}
            "os_obs": "1.12337081805556",
 
            "os_desc": null,
 
            "os_date_entry": null,
 
            "os_date_soluction": null,
 
            "os_date_sched": null,
 
            "os_done": null,
 
            "os_deleted": null,
 
            "os_amount": null,
 
            "staff_pk": null,
 
            "task_pk": null,
 
            "os_create_type": null,
 
            "support_pk": null
 
        }
 
    ]
 
}
 
  
  
=='''Listagem de Tarefas do Suporte Técnico'''==
+
{| class="table table-bordered table-striped" style="margin: auto;"
 +
! style="text-align:center" | Dir
 +
|-
 +
|Parâmetro de ordenação do maior para o menor ou vice-versa. Sendo '''ASC''' - para ordenar do '''menor''' para o '''maior''' e '''DESC''' - para ordenar do '''maior''' para o '''menor'''
 +
|-
 +
|}
  
  curl -i -X POST \
 
        -H "Content-Type:application/x-www-form-urlencoded" \
 
        -H "Accept:application/json" \
 
        -d "sort: task_name" \
 
        -d "dir: ASC" \
 
    <nowiki>'http://192.168.142.23/controllr_client/support/tasklist'</nowiki>
 
  
 +
{| class="table wikitable" style="margin: auto;"
 +
! style="text-align:center" colspan="2" | Where
 +
|-
 +
|colspan="2"|Parâmetro de montagem de filtro para listagem de clientes específicos.
 +
|-
 +
|style="text-align:center" colspan="2"| <b> Field </b>
 +
|-
 +
|colspan="2"|Marque a coluna que deseja usar esse filtro e também pode usar com a opção '''AND''', para usar mais de uma coluna no filtro
 +
|-
 +
|style="text-align:center" colspan="2"|<b> Oper </b>
 +
|-
 +
|colspan="2"|É código do filtro que irá usar para a coluna marcada.
 +
|-
 +
|"oper":<b style="color:red">1</b>|| Menor que <b style="color:red"> < </b>
 +
|-
 +
|"oper":<b style="color:red">2</b>||Maior que <b style="color:red"> > </b>
 +
|-
 +
|"oper":<b style="color:red">3</b>||Menor ou igual à <b style="color:red"> <= </b>
 +
|-
 +
|"oper":<b style="color:red">4</b>||Maior ou igual à <b style="color:red"> >= </b>
 +
|-
 +
|"oper":<b style="color:red">5</b>||Igual à <b style="color:red"> = </b>
 +
|-
 +
|"oper":<b style="color:red">6</b>||Diferente de <b style="color:red"> != </b> ou <b style="color:red"> <> </b>
 +
|-
 +
|"oper":<b style="color:red">7</b>||É <b style="color:red"> IS </b>
 +
|-
 +
|"oper":<b style="color:red">8</b>||Não é <b style="color:red"> IS NOT </b>
 +
|-
 +
|"oper":<b style="color:red">9</b>||<b style="color:red"> LIKE </b>
 +
|-
 +
|"oper":<b style="color:red">10</b>||<b style="color:red"> ILIKE </b>
 +
|-
 +
|style="text-align:center" colspan="2"| <b> Value </b>
 +
|-
 +
|colspan="2"|Valor da coluna que deseja utilizar no filtro
 +
|-
 +
|}
  
Resposta da captura
+
  
  
{
+
{| class="table wikitable" style="margin: auto;"
    "success": true,
+
! style="text-align:center" colspan="3" | COMANDOS WHERE
    "total": 6,
+
|-
    "results": [
+
! FIELD
        {
+
! CÓDIGO
            "task_pk": 5,
+
! EXEMPLOS
            "task_name": "Desinstalação"
+
|-
        },
+
| Nome do campo da tabela que irá utilizar o filtro
        {
+
|"OPER":<b style="color:red">1</b> = Menor Que <b style="color:red"> < </b> ||
            "task_pk": 8,
+
|-
            "task_name": "Desinstalação Equipamento"
+
! OPER
        },
+
|"OPER":<b style="color:red">2</b> = Maior Que <b style="color:red"> > </b> ||
        {
+
|-
            "task_pk": 2,
+
| rowspan="7" | É um número usado para equivalência do parâmetro WHERE
            "task_name": "Instalação"
+
|-
        },
+
|"OPER":<b style="color:red">3</b> = Menor ou Igual à <b style="color:red"> <= </b> ||
        {
+
|-
            "task_pk": 3,
+
|"OPER":<b style="color:red">4</b> = Maior ou Igual à <b style="color:red"> >= </b> ||
            "task_name": "Suporte Técnico"
+
|-
        },
+
|"OPER":<b style="color:red">5</b> = Igual <b style="color:red"> = </b> || [{"field":"client.client_doc1","oper":5,"value":"69120603070"}]
        {
+
|-
            "task_pk": 4,
+
|"OPER":<b style="color:red">6</b> = Diferente <b style="color:red"> != </b> ou <b style="color:red"> <> </b> ||
            "task_name": "Troca de Equipamento"
+
|-
        },
+
|"OPER":<b style="color:red">7</b> = é <b style="color:red"> IS </b> ||
        {
+
|-
            "task_pk": 1,
+
|"OPER":<b style="color:red">8</b> = Não é <b style="color:red"> IS NOT </b> ||
            "task_name": "Viabilidade"
+
|-
        }
+
! VALUE
    ]
+
|"OPER":<b style="color:red">9</b> = <b style="color:red"> LIKE </b> ||
}
+
|-
 
+
| Valor que usará para retornar o filtro desejado
 +
|"OPER":<b style="color:red">10</b> = <b style="color:red"> ILIKE </b> || [{"field":"client.client_complete_name","oper":10,"value":"Teste%"}]
 +
|}
  
  
 
__NOEDITSECTION__
 
__NOEDITSECTION__
 +
[[Category:Controllr]]
 +
[[Category:API]]

Edição atual tal como às 08h24min de 7 de novembro de 2023

API

Exemplo de requisição pura. Feita com Telnet para ilustrar como deve ser montada a requisição.

Nestes exemplos estarei usando o IP 192.168.1.2 como EXEMPLO, este IP deverá ser o do servidor que deseja conectar.

POST /login

curl -i -X POST \
    -H "Content-Type:application/x-www-form-urlencoded" \
    -H "Accept:application/json" \
    -d "username=admin" \
    -d "password=admin" \
     'http://[$IP-do-servidor]/login' 


Requisição de LOGIN

Requisição POST para http://[IP-SERVIDOR]/login Com body username=USER&password=PASS

POST /login

telnet 192.168.1.2 8080

POST /login HTTP/1.1
Host: 192.168.142.23:8080
Content-Type: application/x-www-form-urlencoded
Content-Length: 29

username=admin&password=admin


Resposta JSON

Resposta

HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Sat, 27 Apr 2019 19:41:49 GMT
Content-Type: application/json
Content-Length: 17
Connection: keep-alive
Set-Cookie: BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a; expires=Sun, 26 Apr 2020 19:51:49 GMT; path=/
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS

{"success": true}

POST /login


curl -i -X POST \
    -H "Content-Type:application/x-www-form-urlencoded" \
    -H "Accept:application/json" \
    -d "username=admin" \
    -d "password=admin" \
     'http://[$IP-do-servidor]/login' 

RESPOSTA - pegar o cookie do cabeçalho Set-Cookie

Na resposta do Login, capturar o cookie que será usado para requisição

Resposta JSON

HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Fri, 20 Apr 2018 20:46:26 GMT
Content-Type: application/json
Content-Length: 17
Connection: keep-alive
Set-Cookie: BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a; expires=Sat, 20 Apr 2019 20:56:26 GMT; path=/
  
{"success": true}

Para capturar as informações do Dashboard, fazer uma requisição usando o Cookie previamente autenticado.

POST /controllrctl/dashboard/info


curl -i -X GET \
   -H "Accept:application/json" \
   -H "Cookie:BRBOSCookie=1c248080a70955b1d8bf7b20a1067c7a" \
     'http://192.168.142.23:8080/controllrctl/dashboard/info'


OBS: A área administrativa, deve ser acessada através da porta WEB que por padrão é a 8080

Exemplo http://192.168.144.10:8080

É diferente do acesso dá área do cliente, que utiliza por padrão a porta 80, através do acesso do Hotsite.


Para listagem dos clientes usando algum filtro especifico deve montar a requisição com os parâmetros corretos. Utilizando o F12 do seu navegador, irá visualizar os parâmetros que são utilizáveis para montagem da sua URL. Caminho da opção do desenvolvedor: Aba Network > XHR > Headers


Controllrctl-client-list.png


FORM DATA

Propriedade Descrição Tipo Tamanho
start Parâmetro da posição que deseja que seja listado os clientes. Sendo 0 (zero) a primeira posição Número 0 ~ n
limit Parâmetro para setar o valor da quantidade de clientes que devem ser listados na requisição URL Número 1 ~ n
sort Nome da coluna da tabela que deseja ordenar a sua listagem Texto 2 - 45
dir Parâmetro de ordenação do maior para o menor ou vice-versa. Sendo ASC - para ordenar do menor para o maior e DESC - para ordenar do maior para o menor Booleano -
where Parâmetro de montagem de filtro para listagem de clientes específicos. Where -


Comandos Where

Com a propriedade Where pode ser montado vários filtros para listar o que deseja, sendo cliente por CPF/CNPJ, cobranças em atraso, usuário bloqueado, etc...

A montagem do Where é do tipo json.

Para montar o filtro pode usar 3 tipos:

* field:

Field é usado para selecionar qual é a coluna da tabela.

* oper:

É o código da operação do filtro que irá realizar com essa coluna selecionada. Criamos 22 códigos de operações.

"oper":1 Menor que < "oper":2 Maior que > "oper":3 Menor ou igual à <= "oper":4 Maior ou igual à >= "oper":5 Igual à = "oper":6 Diferente de  != ou <> "oper":7 É IS "oper":8 Não é IS NOT "oper":9 LIKE "oper":10 ILIKE


01. OPER_NONE: (p = 0),
02. OPER_LESS_THAN: ++p,
03. OPER_GREATER_THAN: ++p,
04. OPER_LESS_THAN_OR_EQUAL_TO: ++p,
05. OPER_GREATER_THAN_OR_EQUAL_TO: ++p,
06. OPER_EQUAL: ++p,
07. OPER_NOT_EQUAL: ++p,
08. OPER_IS: ++p,
09. OPER_IS_NOT: ++p,
10. OPER_LIKE: ++p,
11. OPER_ILIKE: ++p,
12. OPER_INET_IS_LESS_THAN: ++p,
13. OPER_INET_IS_LESS_THAN_OR_EQUAL: ++p,
14. OPER_INET_EQUALS: ++p,
15. OPER_INET_IS_GREATER_OR_EQUAL: ++p,
16. OPER_INET_IS_GREATER_THAN: ++p,
17. OPER_INET_IS_NOT_EQUAL: ++p,
18. OPER_INET_IS_CONT_W: ++p,
19. OPER_INET_IS_CONT_W_OR_EQUALS: ++p,
20. OPER_INET_CONT: ++p,
21. OPER_INET_CONT_OR_EQUALS: ++p,
22. OPER_IN: ++p





field Marque a coluna que deseja usar esse filtro e também pode usar com a opção AND, para usar mais de uma coluna no filtro.
oper É código do filtro que irá usar para a coluna marcada no field .
"oper":1 Menor que <
"oper":2 Maior que >
"oper":3 Menor ou igual à <=
"oper":4 Maior ou igual à >=
"oper":5 Igual à =
"oper":6 Diferente de  != ou <>
"oper":7 É IS
"oper":8 Não é IS NOT
"oper":9 LIKE
"oper":10 ILIKE
value Valor da coluna que deseja utilizar no filtro Inteiro Depende da coluna que irá filtrar



Start
Parâmetro da posição que deseja que seja listado os clientes. Sendo 0 (zero) a primeira posição


Limit
Parâmetro para setar o valor da quantidade de clientes que devem ser listados na requisição URL


Sort
Parâmetro de ordenação da coluna de sua listagem. Por padrão é ordenado pela coluna client_complete_name, mas pode escolher qualquer outra de sua escolha


Dir
Parâmetro de ordenação do maior para o menor ou vice-versa. Sendo ASC - para ordenar do menor para o maior e DESC - para ordenar do maior para o menor


Where
Parâmetro de montagem de filtro para listagem de clientes específicos.
Field
Marque a coluna que deseja usar esse filtro e também pode usar com a opção AND, para usar mais de uma coluna no filtro
Oper
É código do filtro que irá usar para a coluna marcada.
"oper":1 Menor que <
"oper":2 Maior que >
"oper":3 Menor ou igual à <=
"oper":4 Maior ou igual à >=
"oper":5 Igual à =
"oper":6 Diferente de  != ou <>
"oper":7 É IS
"oper":8 Não é IS NOT
"oper":9 LIKE
"oper":10 ILIKE
Value
Valor da coluna que deseja utilizar no filtro



COMANDOS WHERE
FIELD CÓDIGO EXEMPLOS
Nome do campo da tabela que irá utilizar o filtro "OPER":1 = Menor Que <
OPER "OPER":2 = Maior Que >
É um número usado para equivalência do parâmetro WHERE
"OPER":3 = Menor ou Igual à <=
"OPER":4 = Maior ou Igual à >=
"OPER":5 = Igual = [{"field":"client.client_doc1","oper":5,"value":"69120603070"}]
"OPER":6 = Diferente  != ou <>
"OPER":7 = é IS
"OPER":8 = Não é IS NOT
VALUE "OPER":9 = LIKE
Valor que usará para retornar o filtro desejado "OPER":10 = ILIKE [{"field":"client.client_complete_name","oper":10,"value":"Teste%"}]