<?php
namespace App\Service\Api;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\HttpClient\Exception\TransportException;
use Symfony\Contracts\HttpClient\HttpClientInterface;
class NewsApiService
{
private HttpClientInterface $client;
private ParameterBagInterface $params;
public function __construct(
HttpClientInterface $client,
ParameterBagInterface $params
) {
$this->client = $client;
$this->params = $params;
}
public function getNews(): array
{
$newsApiUrl = $this->params->get('app.news_api_url');
$newsFromApi = [];
try {
$response = $this->client->request('GET', $newsApiUrl, []);
$statusCode = $response->getStatusCode();
if (isset($response) && $response && $statusCode != 200) {
return $newsFromApi;
}
$content = $response->getContent();
$content = $response->toArray();
if (isset($response) && $response && $statusCode === 200) {
$newsFromApi = $content;
}
} catch (TransportException $exception) {
$newsFromApi = [];
}
return $newsFromApi;
}
}