|
|
<?php |
|
|
|
|
|
require_once 'Integracao.php'; |
|
|
include "config.php"; |
|
|
|
|
|
/** |
|
|
* DESCRICAO DO DESENVOLVEDOR |
|
|
* |
|
|
* @author Lucas Awade |
|
|
* @function developer |
|
|
* @company SimplesIP |
|
|
* @version 1.0.0 |
|
|
*/ |
|
|
class SGA extends Integracao { |
|
|
|
|
|
private $token; |
|
|
private $url; |
|
|
private $metodo; |
|
|
private $query; |
|
|
private $curl; |
|
|
private $debug; |
|
|
private $params = array(); |
|
|
|
|
|
######################################################################## |
|
|
## FUNCOES DA API ## |
|
|
######################################################################## |
|
|
|
|
|
public function auth(){ |
|
|
$this->debug = debug_backtrace(); |
|
|
if ($this->getArgs(func_get_args())) { |
|
|
$this->metodo('usuario/autenticar'); |
|
|
|
|
|
return array(); |
|
|
} else { |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
public function identificarDocumento($documento) { |
|
|
$this->debug = debug_backtrace(); |
|
|
if ($this->getArgs(func_get_args())) { |
|
|
return array(); |
|
|
} else { |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
######################################################################## |
|
|
## FUNCOES DEFAULT DA CLASSE ## |
|
|
######################################################################## |
|
|
|
|
|
/** |
|
|
* Coleta as informacoes iniciais para o inicio da integracao com a API. |
|
|
* |
|
|
* @param string $token |
|
|
* @param string $url |
|
|
* @param boolean $log |
|
|
*/ |
|
|
public function __construct($token, $url) { |
|
|
$this->token = $token; |
|
|
$this->url = $url; |
|
|
$this->setLog(CONF_LOGGER_ATIVO); |
|
|
$this->integracaoReg(); |
|
|
$this->log->info("Iniciando integracao", debug_backtrace()); |
|
|
} |
|
|
|
|
|
/** |
|
|
* Parametriza o metodo utilizado para a consulta. |
|
|
* |
|
|
* @param type $metodo |
|
|
*/ |
|
|
private function setMetodo($metodo = "POST") { |
|
|
$methods = ["GET", "POST", "DELETE", "PUT", "PATCH"]; |
|
|
if(in_array($metodo, $methods)){ |
|
|
$this->metodo = $metodo; |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
* Informa o tipo de requisicao que sera feita pela cURL |
|
|
* @param bool $request |
|
|
*/ |
|
|
private function request($request = null) { |
|
|
if (!$this->request || $request) { |
|
|
$this->request = (strtoupper($request) == 'POST' ? strtoupper($request) : "GET"); |
|
|
} |
|
|
$this->log->debug("HTTP Request: " . $this->request, debug_backtrace()); |
|
|
return $this->request; |
|
|
} |
|
|
|
|
|
/** |
|
|
* Constroi de forma dinamica a string para ser passada para a execucao do Curl |
|
|
* |
|
|
* @void |
|
|
*/ |
|
|
private function curl() { |
|
|
$this->curl = curl_init(); |
|
|
$header = array('Content-Type: application/json'); |
|
|
curl_setopt($this->curl, CURLOPT_URL, $this->url); |
|
|
curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true); |
|
|
|
|
|
|
|
|
curl_setopt($this->curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); |
|
|
curl_setopt($this->curl, CURLOPT_USERPWD, $this->userpwd); |
|
|
curl_setopt($this->curl, CURLOPT_HEADER, false); |
|
|
|
|
|
curl_setopt($this->curl, CURLOPT_POST, true); |
|
|
curl_setopt($this->curl, CURLOPT_POSTFIELDS, $this->params); |
|
|
|
|
|
curl_setopt($this->curl, CURLOPT_HTTPHEADER, $header); |
|
|
curl_setopt($this->curl, CURLOPT_SSL_VERIFYPEER, 1); |
|
|
curl_setopt($this->curl, CURLOPT_TIMEOUT, 30); |
|
|
|
|
|
$response = curl_exec($this->curl); |
|
|
if (curl_errno($this->curl)) { |
|
|
curl_close($this->curl); |
|
|
return false; |
|
|
} |
|
|
curl_close($this->curl); |
|
|
return $this->response($response); |
|
|
} |
|
|
|
|
|
/** |
|
|
* Recebe array de forma de indice e valor |
|
|
* |
|
|
* @example array("qtype" => 'test_api', "query" => '123', "oper" => '=') |
|
|
* |
|
|
* @obs sempre chamar a fun<EFBFBD><EFBFBD>o debug_backtrace() para ser dispon<EFBFBD>vel em log |
|
|
* |
|
|
* @param type $params |
|
|
* @debug_track function debug_backtrace() |
|
|
*/ |
|
|
private function setParams() { |
|
|
unset($this->params); |
|
|
} |
|
|
|
|
|
/** |
|
|
* Prepara dos dados para ser transmitidos para o metodo a ser retornado a |
|
|
* integracao. |
|
|
* |
|
|
* @return array |
|
|
*/ |
|
|
private function response($data) { |
|
|
$this->log->debug("Reponse API: " . print_r($data, true), $this->debug); |
|
|
if ($data) { |
|
|
return $data; |
|
|
} else { |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|