mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-07-01 22:46:13 +00:00
refactor: Return a string instead of a resource.
This commit is contained in:
parent
b8992b8eeb
commit
8abed67e1c
@ -13,10 +13,5 @@ namespace Chill\DocGeneratorBundle\GeneratorDriver;
|
|||||||
|
|
||||||
interface DriverInterface
|
interface DriverInterface
|
||||||
{
|
{
|
||||||
/**
|
public function generateFromString(string $template, string $resourceType, array $data, ?string $templateName = null): string;
|
||||||
* @param resource $template
|
|
||||||
*
|
|
||||||
* @return resource
|
|
||||||
*/
|
|
||||||
public function generateFromResource($template, string $resourceType, array $data, ?string $templateName = null);
|
|
||||||
}
|
}
|
||||||
|
@ -20,40 +20,40 @@ use Symfony\Contracts\HttpClient\Exception\DecodingExceptionInterface;
|
|||||||
use Symfony\Contracts\HttpClient\Exception\HttpExceptionInterface;
|
use Symfony\Contracts\HttpClient\Exception\HttpExceptionInterface;
|
||||||
use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
|
use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
|
||||||
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
||||||
|
use Throwable;
|
||||||
|
|
||||||
class RelatorioDriver implements DriverInterface
|
final class RelatorioDriver implements DriverInterface
|
||||||
{
|
{
|
||||||
private LoggerInterface $logger;
|
private HttpClientInterface $client;
|
||||||
|
|
||||||
private HttpClientInterface $relatorioClient;
|
private LoggerInterface $logger;
|
||||||
|
|
||||||
private string $url;
|
private string $url;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
HttpClientInterface $relatorioClient,
|
HttpClientInterface $client,
|
||||||
ParameterBagInterface $parameterBag,
|
ParameterBagInterface $parameterBag,
|
||||||
LoggerInterface $logger
|
LoggerInterface $logger
|
||||||
) {
|
) {
|
||||||
$this->relatorioClient = $relatorioClient;
|
$this->client = $client;
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
$this->url = $parameterBag->get('chill_doc_generator')['driver']['relatorio']['url'];
|
$this->url = $parameterBag->get('chill_doc_generator')['driver']['relatorio']['url'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function generateFromResource($template, string $resourceType, array $data, ?string $templateName = null)
|
public function generateFromString(string $template, string $resourceType, array $data, ?string $templateName = null): string
|
||||||
{
|
{
|
||||||
$formFields = [
|
$form = new FormDataPart(
|
||||||
'variables' => json_encode($data),
|
[
|
||||||
'template' => new DataPart($template, $templateName ?? uniqid('template_'), $resourceType),
|
'variables' => json_encode($data),
|
||||||
];
|
'template' => new DataPart($template, $templateName ?? uniqid('template_'), $resourceType),
|
||||||
$form = new FormDataPart($formFields);
|
]
|
||||||
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$response = $this->relatorioClient->request('POST', $this->url, [
|
$response = $this->client->request('POST', $this->url, [
|
||||||
'headers' => $form->getPreparedHeaders()->toArray(),
|
'headers' => $form->getPreparedHeaders()->toArray(),
|
||||||
'body' => $form->bodyToIterable(),
|
'body' => $form->bodyToIterable(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return $response->toStream();
|
|
||||||
} catch (HttpExceptionInterface $e) {
|
} catch (HttpExceptionInterface $e) {
|
||||||
$content = $e->getResponse()->getContent(false);
|
$content = $e->getResponse()->getContent(false);
|
||||||
|
|
||||||
@ -88,5 +88,23 @@ class RelatorioDriver implements DriverInterface
|
|||||||
|
|
||||||
throw $e;
|
throw $e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$content = $response->getContent();
|
||||||
|
} catch (Throwable $exception) {
|
||||||
|
$this
|
||||||
|
->logger
|
||||||
|
->error(
|
||||||
|
'relatorio: Unable to get content from response.',
|
||||||
|
[
|
||||||
|
'msg' => $exception->getMessage(),
|
||||||
|
'e' => $exception->getTraceAsString(),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
throw $exception;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user