From ad96d615759aef1a20acf72df59e52186c8f52ea Mon Sep 17 00:00:00 2001 From: Glaydson Rodrigues Date: Thu, 15 Aug 2024 23:02:10 -0300 Subject: [PATCH] refactor: consultarRepositoriosDeEstruturas --- src/rn/ProcessoEletronicoRN.php | 62 +++++++++++++++------------------ 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/src/rn/ProcessoEletronicoRN.php b/src/rn/ProcessoEletronicoRN.php index 4b36a7a53..8f407b20e 100755 --- a/src/rn/ProcessoEletronicoRN.php +++ b/src/rn/ProcessoEletronicoRN.php @@ -197,41 +197,37 @@ private function getObjPenWs() * @param int $numIdentificacaoDoRepositorioDeEstruturas Código de identificação do repositório de estruturas do PEN * @return void */ - public function consultarRepositoriosDeEstruturas($numIdentificacaoDoRepositorioDeEstruturas) - { - $objRepositorioDTO = null; - try{ - $parametros = new stdClass(); - $parametros->filtroDeConsultaDeRepositoriosDeEstrutura = new stdClass(); - $parametros->filtroDeConsultaDeRepositoriosDeEstrutura->ativos = false; - - $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->consultarRepositoriosDeEstruturas($parametros); - }); - - if(isset($result->repositoriosEncontrados->repositorio)){ - - if(!is_array($result->repositoriosEncontrados->repositorio)) { - $result->repositoriosEncontrados->repositorio = array($result->repositoriosEncontrados->repositorio); - } + /** + * Consulta a lista de repositório de estruturas disponíveis no Barramento de Serviços do PEN + * + * @param int $numIdentificacaoDoRepositorioDeEstruturas Código de identificação do repositório de estruturas do PEN + */ + public function consultarRepositoriosDeEstruturas($numIdentificacaoDoRepositorioDeEstruturas) + { + $objRepositorioDTO = null; + $endpoint = "/interoperabilidade/rest/v3/repositorios-de-estruturas/{$numIdentificacaoDoRepositorioDeEstruturas}/estruturas-organizacionais"; + try { + $parametros = [ + 'ativo' => true + ]; + $arrResultado = $this->get($endpoint, $parametros); - foreach ($result->repositoriosEncontrados->repositorio as $repositorio) { - if($repositorio->id == $numIdentificacaoDoRepositorioDeEstruturas){ - $objRepositorioDTO = new RepositorioDTO(); - $objRepositorioDTO->setNumId($repositorio->id); - $objRepositorioDTO->setStrNome(utf8_decode($repositorio->nome)); - $objRepositorioDTO->setBolAtivo($repositorio->ativo); - } - } - } - } catch(Exception $e){ - $mensagem = "Falha na obtenção dos Repositórios de Estruturas Organizacionais"; - $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); - throw new InfraException($mensagem, $e, $detalhes); - } + if (isset($arrResultado)) { + foreach ($arrResultado as $repositorio) { + $objRepositorioDTO = new RepositorioDTO(); + $objRepositorioDTO->setNumId($repositorio['id']); + $objRepositorioDTO->setStrNome(mb_convert_encoding($repositorio['nome'], 'UTF-8')); + $objRepositorioDTO->setBolAtivo($repositorio['ativo']); + } + } + } catch (Exception $e) { + $mensagem = "Falha na obtenção dos Repositórios de Estruturas Organizacionais"; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); + } - return $objRepositorioDTO; - } + return $objRepositorioDTO; + } /** * Lista todo os repositórios de estruturas disponíveis no Barramento de Serviços do PEN