From d601d7d7194e22b4a8586e65d39eff2d846c8cdf Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Fri, 6 Jun 2025 17:11:22 -0400 Subject: [PATCH] Mas logs y middlewares en Guzzle --- cli/setup/setups/client.php | 22 ++++++++++++++++------ cli/src/Command/BaseLoop.php | 1 + cli/src/Command/Queue.php | 2 ++ cli/src/Service/Login.php | 9 ++++++++- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/cli/setup/setups/client.php b/cli/setup/setups/client.php index dd293a3..42b3da5 100644 --- a/cli/setup/setups/client.php +++ b/cli/setup/setups/client.php @@ -19,15 +19,25 @@ return [ $container->get('API_PASSWORD') ); }, + GuzzleHttp\HandlerStack::class => function(ContainerInterface $container) { + $stack = new GuzzleHttp\HandlerStack(); + $stack->setHandler($container->get(GuzzleHttp\Handler\CurlHandler::class)); + $stack->push(GuzzleHttp\Middleware::mapRequest(function(Psr\Http\Message\RequestInterface $request) use ($container) { + $login = $container->get(Incoviba\Service\Login::class); + return $request->withHeader('Authorization', "Bearer {$login->getKey($container->get('API_KEY'))}"); + })); + $stack->push(GuzzleHttp\Middleware::mapRequest(function(Psr\Http\Message\RequestInterface $request) use ($container) { + if (!$request->hasHeader('Authorization')) { + return false; + } + return $request; + })); + return $stack; + }, Psr\Http\Client\ClientInterface::class => function(ContainerInterface $container) { - $login = $container->get(Incoviba\Service\Login::class); return new GuzzleHttp\Client([ 'base_uri' => $container->get('API_URL'), - 'headers' => [ - 'Authorization' => [ - "Bearer {$login->getKey($container->get('API_KEY'))}" - ] - ] + 'handler' => $container->get(GuzzleHttp\HandlerStack::class), ]); } ]; diff --git a/cli/src/Command/BaseLoop.php b/cli/src/Command/BaseLoop.php index 66e114d..73d6a04 100644 --- a/cli/src/Command/BaseLoop.php +++ b/cli/src/Command/BaseLoop.php @@ -29,6 +29,7 @@ class BaseLoop extends Console\Command\Command $this->waitNextTimeout($output); + $this->logger->info("Starting loop..."); $this->write($output, 'Starting loop...'); while (true) { $commands = $this->scheduleService->getPending(); diff --git a/cli/src/Command/Queue.php b/cli/src/Command/Queue.php index 6a59b81..5679547 100644 --- a/cli/src/Command/Queue.php +++ b/cli/src/Command/Queue.php @@ -33,6 +33,7 @@ class Queue extends Command $jobs = $this->getJobs($output); if (count($jobs) === 0) { + $this->logger->debug("No jobs to run"); return Console\Command\Command::SUCCESS; } @@ -50,6 +51,7 @@ class Queue extends Command $errors = 0; foreach ($jobs as $job) { if ($this->runJob($output, $job) === Console\Command\Command::FAILURE) { + $this->logger->error("Error running job: {$job}"); $errors ++; } } diff --git a/cli/src/Service/Login.php b/cli/src/Service/Login.php index 32c4357..8939cd7 100644 --- a/cli/src/Service/Login.php +++ b/cli/src/Service/Login.php @@ -14,6 +14,7 @@ class Login public function login(): string { + $this->logger->info('Logging in'); $url = '/api/login'; try { $response = $this->client->request('POST', $url, [ @@ -39,13 +40,19 @@ class Login ]); return ''; } + + $this->logger->info('Logged in'); $body = $response->getBody()->getContents(); $data = json_decode($body, true); if (!key_exists('token', $data)) { $this->logger->error('Token not found'); return ''; } - file_put_contents($this->tokenFilename, $data['token']); + $result = file_put_contents($this->tokenFilename, $data['token']); + if ($result === false) { + $this->logger->error('Failed to save token'); + return ''; + } return $data['token']; }