dmt-software /
insolvency-client
| 1 | <?php |
||
| 2 | |||
|
0 ignored issues
–
show
Coding Style
introduced
by
Loading history...
|
|||
| 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 |