[backend] bump deps and fix styles
This commit is contained in:
Generated
+1025
-856
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;
|
||||
|
||||
+4
-6
@@ -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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user