[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
|
public function defineOpenGraph(?OpenGraph $object): self
|
||||||
{
|
{
|
||||||
$this->metadata = new OpenGraph(
|
$this->metadata = new OpenGraph(
|
||||||
title: $object->title,
|
title: $object?->title,
|
||||||
description: $object->description,
|
description: $object?->description,
|
||||||
image: $object->image,
|
image: $object?->image,
|
||||||
locale: $object->locale ?? "fr"
|
locale: $object->locale ?? 'fr'
|
||||||
);
|
);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
|
|||||||
+3
-5
@@ -6,7 +6,6 @@ namespace Basango\Aggregator\Presentation\Web\Controller;
|
|||||||
|
|
||||||
use Basango\Aggregator\Application\UseCase\Command\CreateArticle;
|
use Basango\Aggregator\Application\UseCase\Command\CreateArticle;
|
||||||
use Basango\Aggregator\Domain\Model\ValueObject\Link;
|
use Basango\Aggregator\Domain\Model\ValueObject\Link;
|
||||||
use Basango\Aggregator\Domain\Model\ValueObject\OpenGraph;
|
|
||||||
use Basango\Aggregator\Presentation\WriteModel\AddArticleModel;
|
use Basango\Aggregator\Presentation\WriteModel\AddArticleModel;
|
||||||
use Basango\SharedKernel\Presentation\Web\Controller\AbstractController;
|
use Basango\SharedKernel\Presentation\Web\Controller\AbstractController;
|
||||||
use Symfony\Component\DependencyInjection\Attribute\Autowire;
|
use Symfony\Component\DependencyInjection\Attribute\Autowire;
|
||||||
@@ -25,7 +24,7 @@ use Symfony\Component\Routing\Requirement\Requirement;
|
|||||||
final class AddArticleController extends AbstractController
|
final class AddArticleController extends AbstractController
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
#[Autowire(env: "BASANGO_CRAWLER_TOKEN")] private string $token
|
#[Autowire(env: 'BASANGO_CRAWLER_TOKEN')] private readonly string $token
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +32,7 @@ final class AddArticleController extends AbstractController
|
|||||||
path: '/api/aggregator/articles',
|
path: '/api/aggregator/articles',
|
||||||
name: 'aggregator_add_article',
|
name: 'aggregator_add_article',
|
||||||
requirements: [
|
requirements: [
|
||||||
'token' => Requirement::ASCII_SLUG
|
'token' => Requirement::ASCII_SLUG,
|
||||||
],
|
],
|
||||||
methods: ['POST']
|
methods: ['POST']
|
||||||
)]
|
)]
|
||||||
@@ -48,14 +47,13 @@ final class AddArticleController extends AbstractController
|
|||||||
$this->handleCommand(new CreateArticle(
|
$this->handleCommand(new CreateArticle(
|
||||||
$model->title,
|
$model->title,
|
||||||
Link::from($model->link),
|
Link::from($model->link),
|
||||||
join(', ', $model->categories),
|
implode(', ', $model->categories),
|
||||||
$model->body,
|
$model->body,
|
||||||
$model->source,
|
$model->source,
|
||||||
$model->timestamp,
|
$model->timestamp,
|
||||||
$model->metadata,
|
$model->metadata,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
return new JsonResponse(status: Response::HTTP_CREATED);
|
return new JsonResponse(status: Response::HTTP_CREATED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class Bookmark
|
|||||||
/**
|
/**
|
||||||
* @var DataCollection<int, Article>
|
* @var DataCollection<int, Article>
|
||||||
*/
|
*/
|
||||||
private(set) public iterable $articles;
|
public private(set) iterable $articles;
|
||||||
|
|
||||||
private function __construct(
|
private function __construct(
|
||||||
public readonly User $user,
|
public readonly User $user,
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ declare(strict_types=1);
|
|||||||
namespace Basango\SharedKernel\Domain\DataTransfert;
|
namespace Basango\SharedKernel\Domain\DataTransfert;
|
||||||
|
|
||||||
use Basango\SharedKernel\Domain\Assert;
|
use Basango\SharedKernel\Domain\Assert;
|
||||||
use BackedEnum as T;
|
|
||||||
use Symfony\Component\Uid\UuidV7;
|
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": {
|
"doctrine/doctrine-bundle": {
|
||||||
"version": "2.13",
|
"version": "2.13",
|
||||||
"recipe": {
|
"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