Aller au contenu

Structure du projet

API

flowchart TD
    client --> routing
    doctrine -- MariaDB --> services
    middleware_dispatch_job -- RabbitMQ --> services
    stockage -- Filesystem --> services
    supervisor --> workers --> services

    subgraph http
        client[Client/Angular]
    end
    subgraph api
        subgraph listeners
            routing[Routing] --> validation_open_api[Validation OpenAPI] --> security[Sécurité]
        end
        subgraph domain
            repository[Repository]
            handler1[CréerArmoireHandler] --> repository
            handler2[UploadDocumentHandler] --> repository
            handlerx[EtcHandler] --> repository
            handler2 --> stockage[Stockage Fichiers]
        end
        validation_open_api --> controller[Controller] --> lecture{HTTP GET ?}
        lecture -- Oui --> repository --> doctrine[Doctrine]
        lecture -- Non --> middleware_mixpanel[Middleware MixPanel] --> middleware_dispatch_job[Middleware Taches Async] --> middleware_flush_doctrine[Middleware Flush Doctrine] --> command_bus[Dispatch Command]
        command_bus --> handler1
        command_bus --> handler2
        command_bus --> handlerx
        middleware_flush_doctrine --> doctrine
        workers[Workers]
    end
    subgraph infra
        supervisor[Supervisor]
        services[Services]
    end