fedi-feed-router/app/Services/Parsers/BelgaHomepageParser.php
myrmidex 7d745b036a
All checks were successful
CI / ci (push) Successful in 1h26m46s
CI / ci (pull_request) Successful in 10m39s
Build and Push Docker Image / build (push) Successful in 4m22s
115 - Satisfy PHPStan on Belga parser and fixture helpers
2026-08-02 02:04:23 +02:00

28 lines
767 B
PHP

<?php
namespace App\Services\Parsers;
class BelgaHomepageParser
{
private const ARTICLE_URL_TEMPLATE = 'https://www.belganewsagency.eu/press-releases/%s/';
/**
* @return array<int, string>
*/
public static function extractArticleUrls(string $json): array
{
$decoded = json_decode($json, true);
if (! is_array($decoded) || ! isset($decoded['data']) || ! is_array($decoded['data'])) {
return [];
}
return collect($decoded['data'])
->pluck('id')
->filter(fn ($id) => is_int($id) || (is_string($id) && ctype_digit($id)))
->map(fn ($id) => sprintf(self::ARTICLE_URL_TEMPLATE, $id))
->unique()
->values()
->toArray();
}
}