Skip to content

Commit

Permalink
feat: adequação da branch à atualização ao Padrão REST. Rebase da mas…
Browse files Browse the repository at this point in the history
…ter com a 3.8.0.
  • Loading branch information
mateussbh committed Jan 18, 2025
1 parent edee9e2 commit 389db3c
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 122 deletions.
5 changes: 2 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ dist:
@mkdir -p $(SEI_BIN_DIR)
@mkdir -p $(SEI_MODULO_DIR)
@mkdir -p $(SIP_SCRIPTS_DIR)
@php composer.phar install --no-dev
@cp -R src/* $(SEI_MODULO_DIR)/
@cp docs/INSTALL.md dist/INSTALACAO.md
@cp docs/UPGRADE.md dist/ATUALIZACAO.md
Expand Down Expand Up @@ -159,8 +160,6 @@ install: check-isalive
$(CMD_COMPOSE_FUNC) exec -w /opt/sip/scripts/$(MODULO_PASTAS_CONFIG) org2-http bash -c "$(CMD_INSTALACAO_SIP_MODULO)"

wget -nc -i $(PEN_TEST_FUNC)/assets/arquivos/test_files_index.txt -P $(PEN_TEST_FUNC)/.tmp
cp $(PEN_TEST_FUNC)/.tmp/* /tmp


.env:
@if [ ! -f "$(PEN_TEST_FUNC)/.env" ]; then cp $(PEN_TEST_FUNC)/env_$(base) $(PEN_TEST_FUNC)/.env; fi
Expand Down Expand Up @@ -192,7 +191,7 @@ down: .env

# make teste=TramiteProcessoComDevolucaoTest test-functional
test-functional: .env $(FILE_VENDOR_FUNCIONAL) up vendor
$(CMD_COMPOSE_FUNC) run --rm php-test-functional /tests/vendor/bin/phpunit -c /tests/phpunit.xml $(textdox) /tests/tests/$(addsuffix .php,$(teste)) ;
$(CMD_COMPOSE_FUNC) run --rm php-test-functional /tests/vendor/bin/phpunit -c /tests/phpunit.xml --testdox /tests/tests/$(addsuffix .php,$(teste)) ;


test-functional-parallel: .env $(FILE_VENDOR_FUNCIONAL) up
Expand Down
12 changes: 4 additions & 8 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"config": {
"vendor-dir": "./vendor",
"vendor-dir": "./src/vendor",
"platform": {
"php": "7.3.12"
}
Expand All @@ -9,13 +9,9 @@
"psr-4": {
"Tests\\": "sei/"
}
},
"require-dev": {
},
"require": {
"php": "7.3.12",
"phpunit/phpunit": "*",
"squizlabs/php_codesniffer": "*",
"mockery/mockery": "^1.5",
"phpcompatibility/php-compatibility": "^9.3",
"pheromone/phpcs-security-audit": "*"
"guzzlehttp/guzzle": "^7.0"
}
}
130 changes: 20 additions & 110 deletions src/rn/ProcessoEletronicoRN.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,32 +151,32 @@ protected function inicializarObjInfraIBanco()
*/
private function getObjPenWs()
{
if($this->objPenWs == null) {
if($this->objPenWs == null) {

if (InfraString::isBolVazia($this->strEnderecoWebService)) {
throw new InfraException('Módulo do Tramita: Endereço do serviço de integração do Tramita GOV.BR não informado.');
}
if (InfraString::isBolVazia($this->strEnderecoWebService)) {
throw new InfraException('Módulo do Tramita: Endereço do serviço de integração do Tramita GOV.BR não informado.');
}

if (InfraString::isBolVazia($this->strLocalCertPassword)) {
throw new InfraException('Módulo do Tramita: Dados de autenticação do serviço de integração do Tramita.GOV.BR não informados.');
}
if (InfraString::isBolVazia($this->strLocalCertPassword)) {
throw new InfraException('Módulo do Tramita: Dados de autenticação do serviço de integração do Tramita.GOV.BR não informados.');
}

// Validar disponibilidade do serviço
$endpoint = $this->strEnderecoWebService . 'healthcheck';
// Validar disponibilidade do serviço
$endpoint = $this->strEnderecoWebService . 'healthcheck';

try{
$response = $this->strClientGuzzle->request('GET', $endpoint);
try{
$response = $this->strClientGuzzle->request('GET', $endpoint);

if ($response->getStatusCode() !== 200) {
throw new \RuntimeException('Falha ao conectar com o serviço REST');
if ($response->getStatusCode() !== 200) {
throw new \RuntimeException('Falha ao conectar com o serviço REST');
}
} catch (RequestException $e) {
$detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
$mensagem = "Falha de comunicação com o Tramita GOV.BR: " . $detalhes;
throw new \Exception($mensagem);
}
}
} catch (RequestException $e) {
$detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
$mensagem = "Falha de comunicação com o Tramita GOV.BR: " . $detalhes;
throw new \Exception($mensagem);
}
}


/**
* Consulta a lista de repositório de estruturas disponíveis no Barramento de Serviços do PEN
Expand Down Expand Up @@ -563,97 +563,7 @@ protected function buscarEstruturasPorEstruturaPai($idRepositorioEstrutura, $num
? $result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura
: array($result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura);
}

public function listarEstruturas($idRepositorioEstrutura, $nome = '', $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null,
$nomeUnidade = null, $siglaUnidade = null, $offset = null, $registrosPorPagina = null, $parBolPermiteRecebimento = null, $parBolPermiteEnvio = null)
{
$arrObjEstruturaDTO = array();

try{
$idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT);
if(!$idRepositorioEstrutura) {
throw new InfraException("Módulo do Tramita: Repositório de Estruturas inválido");
}

$parametros = new stdClass();
$parametros->filtroDeEstruturas = new stdClass();
$parametros->filtroDeEstruturas->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura;
$parametros->filtroDeEstruturas->apenasAtivas = true;

if(!is_null($numeroDeIdentificacaoDaEstruturaRaizDaConsulta)){
$parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstruturaRaizDaConsulta = $numeroDeIdentificacaoDaEstruturaRaizDaConsulta;
}else{
$nome = trim($nome);
if(is_numeric($nome)) {
$parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = intval($nome);
} else {
$parametros->filtroDeEstruturas->nome = mb_convert_encoding($nome, 'UTF-8', 'ISO-8859-1');
}
}

if(!is_null($siglaUnidade)){
$parametros->filtroDeEstruturas->sigla = $siglaUnidade;
}

if(!is_null($nomeUnidade)){
$parametros->filtroDeEstruturas->nome = mb_convert_encoding($nomeUnidade, 'UTF-8', 'ISO-8859-1');
}

if(!is_null($registrosPorPagina) && !is_null($offset)){
$parametros->filtroDeEstruturas->paginacao = new stdClass();
$parametros->filtroDeEstruturas->paginacao->registroInicial = $offset;
$parametros->filtroDeEstruturas->paginacao->quantidadeDeRegistros = $registrosPorPagina;
}

if(!is_null($parBolPermiteRecebimento) && $parBolPermiteRecebimento === true){
$parametros->filtroDeEstruturas->permiteRecebimento = true;
}

if(!is_null($parBolPermiteEnvio) && $parBolPermiteEnvio === true){
$parametros->filtroDeEstruturas->permiteEnvio = true;
}

$result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) {
return $objPenWs->consultarEstruturas($parametros);
});

if($result->estruturasEncontradas->totalDeRegistros > 0) {

if(!is_array($result->estruturasEncontradas->estrutura)) {
$result->estruturasEncontradas->estrutura = array($result->estruturasEncontradas->estrutura);
}

foreach ($result->estruturasEncontradas->estrutura as $estrutura) {
$item = new EstruturaDTO();
$item->setNumNumeroDeIdentificacaoDaEstrutura($estrutura->numeroDeIdentificacaoDaEstrutura);
$item->setStrNome(mb_convert_encoding($estrutura->nome, 'ISO-8859-1', 'UTF-8'));
$item->setStrSigla(mb_convert_encoding($estrutura->sigla, 'ISO-8859-1', 'UTF-8'));
$item->setBolAtivo($estrutura->ativo);
$item->setBolAptoParaReceberTramites($estrutura->aptoParaReceberTramites);
$item->setStrCodigoNoOrgaoEntidade($estrutura->codigoNoOrgaoEntidade);
$item->setNumTotalDeRegistros($result->estruturasEncontradas->totalDeRegistros);

if(!empty($estrutura->hierarquia->nivel)) {
$array = array();
foreach($estrutura->hierarquia->nivel as $nivel) {
$array[] = mb_convert_encoding($nivel->sigla, 'ISO-8859-1', 'UTF-8');
}
$item->setArrHierarquia($array);
}

$arrObjEstruturaDTO[] = $item;
}
}

} catch (Exception $e) {
$mensagem = "Falha na obtenção de unidades externas";
$detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e));
throw new InfraException($mensagem, $e, $detalhes);
}

return $arrObjEstruturaDTO;
}


public function listarEstruturasBuscaTextual(
$idRepositorioEstrutura,
$nome = '',
Expand Down
1 change: 0 additions & 1 deletion src/rn/VerificadorInstalacaoRN.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ class VerificadorInstalacaoRN extends InfraRN
// A partir da versão 2.0.0, o módulo de integração do SEI com o PEN não será mais compatível com o SEI 3.0.X
const COMPATIBILIDADE_MODULO_SEI = array(
// Versões SEI
'3.1.0', '3.1.1', '3.1.2', '3.1.3', '3.1.4', '3.1.5', '3.1.6', '3.1.7',
'4.0.0', '4.0.1' , '4.0.2' , '4.0.3', '4.0.4', '4.0.5', '4.0.6', '4.0.7',
'4.0.8', '4.0.9', '4.0.10', '4.0.11', '4.0.12', '4.1.1', '4.1.2', '4.1.3', '4.1.4', '4.1.5',
// Versões SUPER
Expand Down

0 comments on commit 389db3c

Please sign in to comment.