25d3a693f9
LST-67 (2.5) backend. Behaviour-preserving move of the IMAP mail integration into src/Module/Mail/. All /api/mail/* routes, securities (ROLE_CLIENT still excluded via MailAccessChecker) and the async sync are unchanged. - 4 entities + 4 repositories (Domain interfaces + Doctrine impls, bound). TaskMailLink.task now references TaskInterface (contract) instead of the concrete PM Task. Link/unlink/list-mails controllers load tasks via TaskRepositoryInterface; MailCreateTaskController keeps the concrete Task (instantiation) — documented Mail->PM coupling. - Domain (MailProviderInterface, exception), Application (5 DTOs, MailSyncService, MailSyncRequested message + handler), Infrastructure (ImapMailProvider + MimeHeaderDecoder, MailAccessChecker, 2 console commands, 12 controllers, ApiPlatform state + MailSettings resource). TokenEncryptor stays shared. - doctrine mapping Mail; messenger routing repointed; services.yaml repo + provider bindings; MailModule registered (id mail, mail.access/configure). - #[Auditable] + Timestampable on MailConfiguration only (additive migration); IMAP data entities keep their own sync timestamps. 163 tests green, mapping valid, no route regression, cs-fixer clean.
34 lines
1.2 KiB
YAML
34 lines
1.2 KiB
YAML
framework:
|
|
messenger:
|
|
failure_transport: failed
|
|
|
|
transports:
|
|
sync: 'sync://'
|
|
|
|
async:
|
|
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
|
|
options:
|
|
queue_name: default
|
|
retry_strategy:
|
|
max_retries: 3
|
|
delay: 1000
|
|
multiplier: 2
|
|
max_delay: 0
|
|
|
|
failed: 'doctrine://default?queue_name=failed&auto_setup=0'
|
|
|
|
routing:
|
|
# Sync à la demande (bouton « rafraîchir ») : exécutée pendant la requête HTTP
|
|
# pour que le re-fetch du front voie immédiatement les nouveaux mails, sans worker
|
|
# messenger:consume à maintenir. La sync de fond reste assurée par le cron OS
|
|
# (app:mail:sync, synchrone, indépendant du bus). Repasser à `async` + worker si
|
|
# la boîte grossit au point que la sync à la demande approche le timeout PHP.
|
|
'App\Module\Mail\Application\Message\MailSyncRequested': sync
|
|
|
|
when@test:
|
|
framework:
|
|
messenger:
|
|
transports:
|
|
async: 'in-memory://'
|
|
failed: 'in-memory://'
|