Manejo de contenido

This commit is contained in:
Juan Pablo Vial
2025-05-13 20:13:15 -04:00
parent d6e60efcaf
commit 8b6516241d

View File

@ -2,14 +2,14 @@
namespace Incoviba\Service\Venta\MediosPago; namespace Incoviba\Service\Venta\MediosPago;
use HttpException; use HttpException;
use Incoviba\Common\Define\Repository;
use Incoviba\Common\Ideal\LoggerEnabled;
use Incoviba\Common\Implement\Exception\{EmptyResponse, EmptyResult};
use Incoviba\Exception\InvalidResult;
use PDOException; use PDOException;
use Psr\Http\Client\ClientExceptionInterface; use Psr\Http\Client\ClientExceptionInterface;
use Psr\Http\Client\ClientInterface; use Psr\Http\Client\ClientInterface;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Incoviba\Common\Define\Repository;
use Incoviba\Common\Ideal\LoggerEnabled;
use Incoviba\Common\Implement\Exception\{EmptyResponse, EmptyResult};
use Incoviba\Exception\InvalidResult;
abstract class AbstractEndPoint extends LoggerEnabled implements EndPoint abstract class AbstractEndPoint extends LoggerEnabled implements EndPoint
{ {
@ -27,13 +27,14 @@ abstract class AbstractEndPoint extends LoggerEnabled implements EndPoint
{ {
$status = $response->getStatusCode(); $status = $response->getStatusCode();
$reason = $response->getReasonPhrase(); $reason = $response->getReasonPhrase();
$contents = $response->getBody()->getContents();
if (in_array($status, $invalidStatus)) { if (in_array($status, $invalidStatus)) {
$contents = $response->getBody()->getContents();
$exception = new HttpException("{$reason}\n{$contents}", $status); $exception = new HttpException("{$reason}\n{$contents}", $status);
throw new EmptyResponse($request_uri, $exception); throw new EmptyResponse($request_uri, $exception);
} }
if (!in_array($status, $validStatus)) { if (!in_array($status, $validStatus)) {
$contents = $response->getBody()->getContents();
$exception = new HttpException("{$reason}\n{$contents}", $status); $exception = new HttpException("{$reason}\n{$contents}", $status);
throw new EmptyResponse($request_uri, $exception); throw new EmptyResponse($request_uri, $exception);
} }
@ -43,7 +44,7 @@ abstract class AbstractEndPoint extends LoggerEnabled implements EndPoint
* @param string $request_uri * @param string $request_uri
* @param array $validStatus * @param array $validStatus
* @param array $invalidStatus * @param array $invalidStatus
* @return string * @return array
* @throws EmptyResponse * @throws EmptyResponse
*/ */
protected function sendGet(string $request_uri, array $validStatus, array $invalidStatus): array protected function sendGet(string $request_uri, array $validStatus, array $invalidStatus): array
@ -64,7 +65,7 @@ abstract class AbstractEndPoint extends LoggerEnabled implements EndPoint
* @param array $data * @param array $data
* @param array $validStatus * @param array $validStatus
* @param array $invalidStatus * @param array $invalidStatus
* @return string * @return bool
* @throws EmptyResponse * @throws EmptyResponse
*/ */
protected function sendAdd(string $request_uri, array $data, array $validStatus, array $invalidStatus): bool protected function sendAdd(string $request_uri, array $data, array $validStatus, array $invalidStatus): bool
@ -75,10 +76,12 @@ abstract class AbstractEndPoint extends LoggerEnabled implements EndPoint
} catch (ClientExceptionInterface $exception) { } catch (ClientExceptionInterface $exception) {
throw new EmptyResponse($request_uri, $exception); throw new EmptyResponse($request_uri, $exception);
} }
$this->validateResponse($response, $request_uri, $validStatus, $invalidStatus); $this->validateResponse($response, $request_uri, $validStatus, $invalidStatus);
$contents = $response->getBody()->getContents(); $contents = $response->getBody()->getContents();
if (trim($contents) === '') {
throw new EmptyResponse($request_uri);
}
$json = json_decode($contents, true); $json = json_decode($contents, true);
return $this->save($json); return $this->save($json);
} }
@ -88,7 +91,7 @@ abstract class AbstractEndPoint extends LoggerEnabled implements EndPoint
* @param array $data * @param array $data
* @param array $validStatus * @param array $validStatus
* @param array $invalidStatus * @param array $invalidStatus
* @return string * @return bool
* @throws EmptyResponse * @throws EmptyResponse
*/ */
protected function sendEdit(string $request_uri, array $data, array $validStatus, array $invalidStatus): bool protected function sendEdit(string $request_uri, array $data, array $validStatus, array $invalidStatus): bool
@ -127,7 +130,7 @@ abstract class AbstractEndPoint extends LoggerEnabled implements EndPoint
protected function doSave(Repository $repository, array $data): bool protected function doSave(Repository $repository, array $data): bool
{ {
try { try {
$repository->fetchById($data['id']); $repository->fetchByTokuId($data['id']);
return true; return true;
} catch (EmptyResult) { } catch (EmptyResult) {
$mappedData = $this->mapSave($data); $mappedData = $this->mapSave($data);