Skip to content

Commit

Permalink
guzzle 6.0 integration
Browse files Browse the repository at this point in the history
  • Loading branch information
Florian Preusner committed Jun 14, 2015
1 parent 9600556 commit b1a224e
Showing 1 changed file with 89 additions and 0 deletions.
89 changes: 89 additions & 0 deletions Handler/Middleware.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?php

namespace EightPoints\Bundle\GuzzleBundle\Handler;

use Psr\Log\LoggerInterface,
GuzzleHttp\MessageFormatter;

/**
* Middleware
*
* @package EightPoints\Bundle\GuzzleBundle\Handler
* @author Florian Preusner
*
* @version 3.0
* @since 2015-06
*/
class Middleware {

/**
* @var MessageFormatter
*/
protected $formatter;

/**
* @var LoggerInterface
*/
protected $logger;

/**
* Middleware
*
* @author Florian Preusner
* @since 2015-06
* @version 3.0
*
* @param LoggerInterface $logger
* @param MessageFormatter $formatter
*/
public function __construct(LoggerInterface $logger, MessageFormatter $formatter) {

$this->logger = $logger;
$this->formatter = $formatter;
} // end: __construct()

/**
* Logging each Request
*
* @author Florian Preusner
* @since 2015-06
* @version 3.0
*
* @return callable
*/
public function log() {

$logger = $this->logger;
$formatter = $this->formatter;

return function (callable $handler) use ($logger, $formatter) {

return function ($request, array $options) use ($handler, $logger, $formatter) {

return $handler($request, $options)->then(

function ($response) use ($logger, $request, $formatter) {

$message = $formatter->format($request, $response);
$context = compact('request', 'response');

$logger->info($message, $context);

return $response;
},

function ($reason) use ($logger, $request, $formatter) {

$response = $reason instanceof RequestException ? $reason->getResponse() : null;
$message = $formatter->format($request, $response, $reason);
$context = compact('request', 'response');

$logger->notice($message, $context);

return \GuzzleHttp\Promise\rejection_for($reason);
}
);
};
};
} // end: log()
} // end: Middleware

0 comments on commit b1a224e

Please sign in to comment.