1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
<?php
namespace OpenCloud\Common\Transport;
use function GuzzleHttp\Psr7\modify_request;
use GuzzleHttp\MessageFormatter;
use GuzzleHttp\Middleware as GuzzleMiddleware;
use OpenCloud\Common\Auth\AuthHandler;
use OpenCloud\Common\Auth\Token;
use OpenCloud\Common\Error\Builder;
use Psr\Http\Message\ResponseInterface;
final class Middleware
{
/**
* @return callable
*/
public static function httpErrors()
{
return function (callable $handler) {
return function ($request, array $options) use ($handler) {
return $handler($request, $options)->then(
function (ResponseInterface $response) use ($request, $handler) {
if ($response->getStatusCode() < 400) {
return $response;
}
throw (new Builder())->httpError($request, $response);
}
);
};
};
}
/**
* @param callable $tokenGenerator
* @param Token $token
*
* @return callable
*/
public static function authHandler(callable $tokenGenerator, Token $token = null)
{
return function (callable $handler) use ($tokenGenerator, $token) {
return new AuthHandler($handler, $tokenGenerator, $token);
};
}
/**
* @codeCoverageIgnore
*/
public static function history(array &$container)
{
return GuzzleMiddleware::history($container);
}
/**
* @codeCoverageIgnore
*/
public static function retry(callable $decider, callable $delay = null)
{
return GuzzleMiddleware::retry($decider, $delay);
}
/**
* @codeCoverageIgnore
*/
public static function log(LoggerInterface $logger, MessageFormatter $formatter, $logLevel = LogLevel::INFO)
{
return GuzzleMiddleware::log($logger, $formatter, $logLevel);
}
/**
* @codeCoverageIgnore
*/
public static function prepareBody()
{
return GuzzleMiddleware::prepareBody();
}
/**
* @codeCoverageIgnore
*/
public static function mapRequest(callable $fn)
{
return GuzzleMiddleware::mapRequest($fn);
}
/**
* @codeCoverageIgnore
*/
public static function mapResponse(callable $fn)
{
return GuzzleMiddleware::mapResponse($fn);
}
}
|