[backend] bump deps and fix styles

This commit is contained in:
2025-10-07 00:23:41 +02:00
parent 449718cdf2
commit 6855590d6b
8 changed files with 1043 additions and 968 deletions
+1025 -856
View File
File diff suppressed because it is too large Load Diff
@@ -75,10 +75,10 @@ class Article
public function defineOpenGraph(?OpenGraph $object): self
{
$this->metadata = new OpenGraph(
title: $object->title,
description: $object->description,
image: $object->image,
locale: $object->locale ?? "fr"
title: $object?->title,
description: $object?->description,
image: $object?->image,
locale: $object->locale ?? 'fr'
);
return $this;
@@ -6,7 +6,6 @@ namespace Basango\Aggregator\Presentation\Web\Controller;
use Basango\Aggregator\Application\UseCase\Command\CreateArticle;
use Basango\Aggregator\Domain\Model\ValueObject\Link;
use Basango\Aggregator\Domain\Model\ValueObject\OpenGraph;
use Basango\Aggregator\Presentation\WriteModel\AddArticleModel;
use Basango\SharedKernel\Presentation\Web\Controller\AbstractController;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
@@ -25,7 +24,7 @@ use Symfony\Component\Routing\Requirement\Requirement;
final class AddArticleController extends AbstractController
{
public function __construct(
#[Autowire(env: "BASANGO_CRAWLER_TOKEN")] private string $token
#[Autowire(env: 'BASANGO_CRAWLER_TOKEN')] private readonly string $token
) {
}
@@ -33,12 +32,12 @@ final class AddArticleController extends AbstractController
path: '/api/aggregator/articles',
name: 'aggregator_add_article',
requirements: [
'token' => Requirement::ASCII_SLUG
'token' => Requirement::ASCII_SLUG,
],
methods: ['POST']
)]
public function __invoke(
#[MapQueryParameter] string $token,
#[MapQueryParameter] string $token,
#[MapRequestPayload] AddArticleModel $model
): JsonResponse {
if ($token !== $this->token) {
@@ -48,14 +47,13 @@ final class AddArticleController extends AbstractController
$this->handleCommand(new CreateArticle(
$model->title,
Link::from($model->link),
join(', ', $model->categories),
implode(', ', $model->categories),
$model->body,
$model->source,
$model->timestamp,
$model->metadata,
));
return new JsonResponse(status: Response::HTTP_CREATED);
}
}
@@ -23,7 +23,7 @@ class Bookmark
/**
* @var DataCollection<int, Article>
*/
private(set) public iterable $articles;
public private(set) iterable $articles;
private function __construct(
public readonly User $user,
@@ -5,7 +5,6 @@ declare(strict_types=1);
namespace Basango\SharedKernel\Domain\DataTransfert;
use Basango\SharedKernel\Domain\Assert;
use BackedEnum as T;
use Symfony\Component\Uid\UuidV7;
/**
+9
View File
@@ -1,4 +1,13 @@
{
"doctrine/deprecations": {
"version": "1.1",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "1.0",
"ref": "87424683adc81d7dc305eefec1fced883084aab9"
}
},
"doctrine/doctrine-bundle": {
"version": "2.13",
"recipe": {
@@ -1,37 +0,0 @@
<?php
declare(strict_types=1);
namespace Tests\Unit\Aggregator\Domain\Model\ValueObject;
use Basango\Aggregator\Domain\Model\ValueObject\Crawling\PageRange;
use Basango\SharedKernel\Domain\Exception\InvalidArgument;
use PHPUnit\Framework\TestCase;
/**
* Class PageRangeTest.
*
* @author bernard-ng <bernard@devscast.tech>
*/
final class PageRangeTest extends TestCase
{
public function testItShouldCreatePageRange(): void
{
$pageRange = PageRange::from('1:10');
$this->assertEquals(1, $pageRange->start);
$this->assertEquals(10, $pageRange->end);
}
public function testEndPageShouldBeGreaterThanStartPage(): void
{
$this->expectException(InvalidArgument::class);
PageRange::from('10:1');
}
public function testNonNegativePages(): void
{
$this->expectException(InvalidArgument::class);
PageRange::from('-1:-10');
}
}
@@ -1,63 +0,0 @@
<?php
declare(strict_types=1);
namespace Tests\Unit\Aggregator\Domain\Service;
use Basango\Aggregator\Domain\Service\Crawling\DateParser;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
/**
* Class DateParserTest.
*
* @author bernard-ng <bernard@devscast.tech>
*/
final class DateParserTest extends TestCase
{
private DateParser $dateParser;
#[\Override]
protected function setUp(): void
{
$this->dateParser = new DateParser();
}
#[DataProvider('validDateProvider')]
public function testCreateTimeStampWithValidDates(
string $date,
?string $format,
?string $pattern,
?string $replacement,
string $expected
): void {
$result = $this->dateParser->createTimeStamp($date, $format, $pattern, $replacement);
$this->assertEquals($expected, $result);
}
#[DataProvider('invalidDateProvider')]
public function testCreateTimeStampWithInvalidDates(
string $date,
?string $format,
?string $pattern,
?string $replacement
): void {
$currentTimestamp = new \DateTime('midnight')->format('U');
$result = $this->dateParser->createTimeStamp($date, $format, $pattern, $replacement);
$this->assertEquals($currentTimestamp, $result);
}
public static function validDateProvider(): \Generator
{
yield ['2004-02-12T15:19:21', 'c', null, null, '1076599161'];
yield ['08/10/2024 - 00:00', 'Y-m-d H:i', '/(\d{2})\/(\d{2})\/(\d{4}) - (\d{2}:\d{2})/', '$3-$2-$1 $4', '1728345600'];
yield ['mar 08/10/2024 - 00:00', 'Y-m-d H:i', '/\w{3} (\d{2})\/(\d{2})\/(\d{4}) - (\d{2}:\d{2})/', '$3-$2-$1 $4', '1728345600'];
yield ['Mardi 8 octobre 2024 - 00:00', 'Y-m-d H:i', '/(\d{1}) (\d{1,2}) (\d{2}) (\d{4}) - (\d{2}:\d{2})/', '$4-$3-$2 $5', '1728345600'];
yield ['8.10.2024 00:00', 'd.m.Y H:i', null, null, '1728345600'];
}
public static function invalidDateProvider(): \Generator
{
yield ['invalid date string', null, null, null];
}
}