/**
  * @param \PhpSigep\Model\VerificaDisponibilidadeServico $params
  * @return Result<\PhpSigep\Model\VerificaDisponibilidadeServicoResposta>
  */
 public function execute(\PhpSigep\Model\VerificaDisponibilidadeServico $params)
 {
     $servicosDePostagem = $params->getServicos();
     $codigoDosServicos = array_map(array($this, 'arrayMapCallback'), $servicosDePostagem);
     $soapArgs = array('codAdministrativo' => $params->getAccessData()->getCodAdministrativo(), 'numeroServico' => implode(',', $codigoDosServicos), 'cepOrigem' => $params->getCepOrigem(), 'cepDestino' => $params->getCepDestino(), 'usuario' => $params->getAccessData()->getUsuario(), 'senha' => $params->getAccessData()->getSenha());
     $cacheKey = md5(serialize($soapArgs));
     $cache = Bootstrap::getConfig()->getCacheInstance();
     if ($cachedResult = $cache->getItem($cacheKey)) {
         return unserialize($cachedResult);
     }
     $r = SoapClientFactory::getSoapClient()->verificaDisponibilidadeServico($soapArgs);
     $errorCode = null;
     $errorMsg = null;
     $result = new Result();
     if (!$r) {
         $errorCode = 0;
     } else {
         if ($r instanceof \SoapFault) {
             $errorCode = $r->getCode();
             $errorMsg = SoapClientFactory::convertEncoding($r->getMessage());
             $result->setSoapFault($r);
         } else {
             if ($r instanceof \stdClass && property_exists($r, 'return')) {
                 $result->setResult(new VerificaDisponibilidadeServicoResposta(array('disponivel' => (bool) $r->return)));
                 $cache->setItem($cacheKey, serialize($result));
             } else {
                 $errorCode = 0;
                 $errorMsg = "A resposta do Correios não está no formato esperado.";
             }
         }
     }
     $result->setErrorCode($errorCode);
     $result->setErrorMsg($errorMsg);
     return $result;
 }
 public function execute($numeroCartaoPostagem, $usuario, $senha)
 {
     $soapArgs = array('numeroCartaoPostagem' => $numeroCartaoPostagem, 'usuario' => $usuario, 'senha' => $senha);
     $r = SoapClientFactory::getSoapClient()->getStatusCartaoPostagem($soapArgs);
     $errorCode = null;
     $errorMsg = null;
     $result = new Result();
     if (!$r) {
         $errorCode = 0;
     } else {
         if ($r instanceof \SoapFault) {
             $errorCode = $r->getCode();
             $errorMsg = SoapClientFactory::convertEncoding($r->getMessage());
             $result->setSoapFault($r);
         } else {
             if ($r instanceof \stdClass && property_exists($r, 'return')) {
                 $status = new VerificarStatusCartaoPostagemResposta();
                 $status->setReturn($r->return);
                 $result->setResult($status);
             } else {
                 $errorCode = 0;
                 $errorMsg = "A resposta do Correios não está no formato esperado.";
             }
         }
     }
     $result->setErrorCode($errorCode);
     $result->setErrorMsg($errorMsg);
     return $result;
 }
 public function execute($cep)
 {
     $cep = preg_replace('/[^\\d]/', '', $cep);
     $soapArgs = array('cep' => $cep);
     $r = SoapClientFactory::getSoapClient()->consultaCep($soapArgs);
     $errorCode = null;
     $errorMsg = null;
     $result = new Result();
     if (!$r) {
         $errorCode = 0;
     } else {
         if ($r instanceof \SoapFault) {
             $errorCode = $r->getCode();
             $errorMsg = SoapClientFactory::convertEncoding($r->getMessage());
             $result->setSoapFault($r);
         } else {
             if ($r instanceof \stdClass) {
                 if (property_exists($r, 'return') && $r->return instanceof \stdClass) {
                     $consultaCepResposta = new ConsultaCepResposta();
                     $consultaCepResposta->setBairro(SoapClientFactory::convertEncoding($r->return->bairro));
                     $consultaCepResposta->setCep($r->return->cep);
                     $consultaCepResposta->setCidade(SoapClientFactory::convertEncoding($r->return->cidade));
                     $consultaCepResposta->setComplemento1(SoapClientFactory::convertEncoding($r->return->complemento));
                     $consultaCepResposta->setComplemento2(SoapClientFactory::convertEncoding($r->return->complemento2));
                     $consultaCepResposta->setEndereco(SoapClientFactory::convertEncoding($r->return->end));
                     $consultaCepResposta->setId($r->return->id);
                     $consultaCepResposta->setUf($r->return->uf);
                     $result->setResult($consultaCepResposta);
                 } else {
                     $errorCode = 0;
                     $errorMsg = "Resposta em branco. Confirme se o CEP '{$cep}' realmente existe.";
                 }
             } else {
                 $errorCode = 0;
                 $errorMsg = "A resposta do Correios não está no formato esperado.";
             }
         }
     }
     $result->setErrorCode($errorCode);
     $result->setErrorMsg($errorMsg);
     return $result;
 }