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 =>
|
||||
(HttpStatusCode.NotFound, notFoundEx.Message),
|
||||
|
||||
BadRequestException badRequestEx =>
|
||||
(HttpStatusCode.BadRequest, badRequestEx.Message),
|
||||
|
||||
AuthenticationFailedException authEx =>
|
||||
(HttpStatusCode.Unauthorized, authEx.Message),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user