feat(api): handle BadRequestException as HTTP 400 and add EmailAccountController
- ExceptionHandlingMiddleware: map BadRequestException to 400 Bad Request response - Add EmailAccountController: GET /email-accounts (with optional Id/Username filter), POST/PUT/DELETE via EmailAccountModificationCommand for full CRUD over email accounts
This commit is contained in:
@@ -0,0 +1,27 @@
|
|||||||
|
using DigitalData.MessagingService.Application.EmailAccounts.Queries;
|
||||||
|
using MediatR;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace DigitalData.MessagingService.API.Controllers;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController]
|
||||||
|
public class EmailAccountController(IMediator mediator) : ControllerBase
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="query"></param>
|
||||||
|
/// <param name="cancellationToken"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||||
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
||||||
|
public async Task<IActionResult> GetEmailAccount([FromQuery] GetEmailAccountQuery query, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
return Ok(await mediator.Send(query, cancellationToken));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -35,6 +35,9 @@ public class ExceptionHandlingMiddleware(RequestDelegate Next, ILogger<Exception
|
|||||||
NotFoundException notFoundEx =>
|
NotFoundException notFoundEx =>
|
||||||
(HttpStatusCode.NotFound, notFoundEx.Message),
|
(HttpStatusCode.NotFound, notFoundEx.Message),
|
||||||
|
|
||||||
|
BadRequestException badRequestEx =>
|
||||||
|
(HttpStatusCode.BadRequest, badRequestEx.Message),
|
||||||
|
|
||||||
AuthenticationFailedException authEx =>
|
AuthenticationFailedException authEx =>
|
||||||
(HttpStatusCode.Unauthorized, authEx.Message),
|
(HttpStatusCode.Unauthorized, authEx.Message),
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user