Commit Graph

2 Commits

Author SHA1 Message Date
Anatolii Grynchuk 61130130ff fix: always wrap responses in ApiResponse<T>
Success responses now use ApiResponse<T>{ Success=true, Data=T }
instead of returning raw T — consistent shape for all outcomes.

Ref: IT-628

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-02 01:23:22 +03:00
Anatolii Grynchuk a26f41af18 feat: add API controllers for template and channel management
- ApiResponse<T>, ApiError in Api/Infrastructure
- ApiControllerBase with IMediator, FromServiceResult, MapServiceError
- EmailTemplatesController: GET list, GET one, POST, PUT, DELETE
- EmailChannelsController: GET list, GET one, POST, PUT, DELETE

Ref: IT-628

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-02 01:18:51 +03:00