Compare commits

..

4 Commits

Author SHA1 Message Date
gitea-actions
0282a21298 chore: bump version to v0.1.7
Some checks failed
Auto Tag Develop / tag (push) Successful in 5s
Build & Push Docker Image / build (push) Failing after 16s
2026-04-07 09:41:46 +00:00
Matthieu
adf007b379 fix : autowire persist processor in UserPasswordHasherProcessor
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 11:41:38 +02:00
gitea-actions
65c680da5b chore: bump version to v0.1.6
Some checks failed
Auto Tag Develop / tag (push) Successful in 5s
Build & Push Docker Image / build (push) Failing after 17s
2026-04-07 09:37:17 +00:00
Matthieu
85a6c0d795 refactor : reorganize codebase to DDD architecture
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
Backend:
- src/Api/Auth/State/ — MeProvider, UserPasswordHasherProcessor
- src/Api/Shared/Resource/ — AppVersion
- src/Api/Shared/State/ — AppVersionProvider
- src/Domain/, src/Application/, src/Infrastructure/ — skeleton ready
- User entity stays in src/Entity/ (framework, outside DDD)

Frontend:
- frontend/domains/ — skeleton ready for bounded contexts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 11:37:10 +02:00
10 changed files with 12 additions and 10 deletions

View File

@@ -1,2 +1,2 @@
parameters: parameters:
app.version: '0.1.5' app.version: '0.1.7'

View File

View File

@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace App\State; namespace App\Api\Auth\State;
use ApiPlatform\Metadata\Operation; use ApiPlatform\Metadata\Operation;
use ApiPlatform\State\ProviderInterface; use ApiPlatform\State\ProviderInterface;

View File

@@ -2,11 +2,12 @@
declare(strict_types=1); declare(strict_types=1);
namespace App\State; namespace App\Api\Auth\State;
use ApiPlatform\Metadata\Operation; use ApiPlatform\Metadata\Operation;
use ApiPlatform\State\ProcessorInterface; use ApiPlatform\State\ProcessorInterface;
use App\Entity\User; use App\Entity\User;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
/** /**
@@ -15,7 +16,7 @@ use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
class UserPasswordHasherProcessor implements ProcessorInterface class UserPasswordHasherProcessor implements ProcessorInterface
{ {
public function __construct( public function __construct(
/** @var ProcessorInterface<User, User> */ #[Autowire(service: 'api_platform.doctrine.orm.state.persist_processor')]
private readonly ProcessorInterface $persistProcessor, private readonly ProcessorInterface $persistProcessor,
private readonly UserPasswordHasherInterface $passwordHasher, private readonly UserPasswordHasherInterface $passwordHasher,
) {} ) {}

View File

@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace App\ApiResource; namespace App\Api\Shared\Resource;
use ApiPlatform\Metadata\ApiResource; use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Get; use ApiPlatform\Metadata\Get;
use App\State\AppVersionProvider; use App\Api\Shared\State\AppVersionProvider;
#[ApiResource( #[ApiResource(
operations: [ operations: [

View File

@@ -2,10 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace App\State; namespace App\Api\Shared\State;
use ApiPlatform\Metadata\Operation; use ApiPlatform\Metadata\Operation;
use ApiPlatform\State\ProviderInterface; use ApiPlatform\State\ProviderInterface;
use App\Api\Shared\Resource\AppVersion;
use Symfony\Component\DependencyInjection\Attribute\Autowire; use Symfony\Component\DependencyInjection\Attribute\Autowire;
/** /**
@@ -20,6 +21,6 @@ class AppVersionProvider implements ProviderInterface
public function provide(Operation $operation, array $uriVariables = [], array $context = []): object public function provide(Operation $operation, array $uriVariables = [], array $context = []): object
{ {
return new \App\ApiResource\AppVersion($this->appVersion); return new AppVersion($this->appVersion);
} }
} }

0
src/Application/.gitkeep Normal file
View File

0
src/Domain/.gitkeep Normal file
View File

View File

@@ -10,9 +10,9 @@ use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\GetCollection; use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Metadata\Patch; use ApiPlatform\Metadata\Patch;
use ApiPlatform\Metadata\Post; use ApiPlatform\Metadata\Post;
use App\Api\Auth\State\MeProvider;
use App\Api\Auth\State\UserPasswordHasherProcessor;
use App\Repository\UserRepository; use App\Repository\UserRepository;
use App\State\MeProvider;
use App\State\UserPasswordHasherProcessor;
use DateTimeImmutable; use DateTimeImmutable;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;

View File