1 | <?php |
||
2 | |||
0 ignored issues
–
show
Coding Style
introduced
by
![]() |
|||
3 | namespace DMT\Insolvency\Http; |
||
4 | |||
5 | use DMT\Http\Client\RequestHandler; |
||
6 | use DMT\Insolvency\Config; |
||
7 | use DMT\Insolvency\Http\Request\GetReport; |
||
8 | use DMT\Insolvency\Http\Response\GetReportResponse; |
||
9 | use DMT\Insolvency\Http\Response\GetReportResult; |
||
10 | use DMT\Insolvency\Model\Document; |
||
11 | use GuzzleHttp\Client as HttpClient; |
||
12 | use GuzzleHttp\Psr7\Request as HttpRequest; |
||
13 | use Psr\Http\Client\ClientExceptionInterface; |
||
14 | use Psr\Http\Message\RequestFactoryInterface; |
||
15 | |||
16 | /** |
||
17 | * Class GetReportHandler |
||
18 | */ |
||
0 ignored issues
–
show
|
|||
19 | class GetReportHandler |
||
20 | { |
||
21 | private Config $config; |
||
0 ignored issues
–
show
|
|||
22 | private RequestHandler $requestHandler; |
||
0 ignored issues
–
show
|
|||
23 | protected RequestFactoryInterface $requestFactory; |
||
24 | |||
25 | /** |
||
0 ignored issues
–
show
|
|||
26 | * GetReportHandler constructor. |
||
27 | * |
||
28 | * @param RequestHandler $requestHandler |
||
0 ignored issues
–
show
|
|||
29 | * @param Config $config |
||
0 ignored issues
–
show
|
|||
30 | */ |
||
31 | 5 | public function __construct( |
|
32 | Config $config, |
||
33 | RequestHandler $requestHandler, |
||
34 | RequestFactoryInterface $requestFactory |
||
35 | ) { |
||
36 | 5 | $this->config = $config; |
|
37 | 5 | $this->requestHandler = $requestHandler; |
|
38 | 5 | $this->requestFactory = $requestFactory; |
|
39 | 5 | } |
|
40 | |||
41 | /** |
||
42 | * Handle http request. |
||
43 | * |
||
44 | * @param GetReport $request |
||
0 ignored issues
–
show
|
|||
45 | * @return GetReportResponse |
||
0 ignored issues
–
show
|
|||
46 | * @throws ClientExceptionInterface |
||
0 ignored issues
–
show
|
|||
47 | */ |
||
48 | 5 | public function handle(GetReport $request): GetReportResponse |
|
49 | { |
||
50 | 5 | $request = new HttpRequest('GET', $this->config->documentUri . $request->reportId, []); |
|
51 | |||
52 | 5 | $httpResponse = $this->requestHandler->handle($request); |
|
53 | |||
54 | 4 | $response = new GetReportResponse(); |
|
55 | 4 | $response->result = new GetReportResult(); |
|
56 | 4 | $response->result->report = new Document(); |
|
57 | 4 | $response->result->report->mime = $httpResponse->getHeaderLine('Content-Type'); |
|
58 | 4 | $response->result->report->document = base64_encode($httpResponse->getBody()->getContents()); |
|
59 | |||
60 | 4 | return $response; |
|
61 | } |
||
62 | } |
||
63 |