Refactor EmailTemplateController to use primary constructor
- Enforce [Authorize(Policy = AuthPolicy.Sender)] on controller - Switch to primary constructor for dependency injection - Remove obsolete constructor and private fields - Update method logic to use constructor parameters directly - Improve XML documentation and code clarity - Ensure consistent use of MediatR for command/query handling
This commit is contained in:
@@ -11,6 +11,7 @@ using EnvelopeGenerator.Application.Common.Dto;
|
|||||||
using DigitalData.Core.Abstraction.Application.Repository;
|
using DigitalData.Core.Abstraction.Application.Repository;
|
||||||
using EnvelopeGenerator.Domain.Entities;
|
using EnvelopeGenerator.Domain.Entities;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using EnvelopeGenerator.Domain.Constants;
|
||||||
|
|
||||||
namespace EnvelopeGenerator.API.Controllers;
|
namespace EnvelopeGenerator.API.Controllers;
|
||||||
|
|
||||||
@@ -18,32 +19,18 @@ namespace EnvelopeGenerator.API.Controllers;
|
|||||||
/// Controller for managing temp templates.
|
/// Controller for managing temp templates.
|
||||||
/// Steuerung zur Verwaltung von E-Mail-Vorlagen.
|
/// Steuerung zur Verwaltung von E-Mail-Vorlagen.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Initialisiert eine neue Instanz der <see cref="EmailTemplateController"/>-Klasse.
|
||||||
|
/// </remarks>
|
||||||
|
/// <param name="mapper">
|
||||||
|
/// <param name="repository">
|
||||||
|
/// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird.
|
||||||
|
/// </param>
|
||||||
[Route("api/[controller]")]
|
[Route("api/[controller]")]
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Authorize]
|
[Authorize(Policy = AuthPolicy.Sender)]
|
||||||
public class EmailTemplateController : ControllerBase
|
public class EmailTemplateController(IMapper mapper, IRepository<EmailTemplate> repository, IMediator mediator) : ControllerBase
|
||||||
{
|
{
|
||||||
private readonly IMapper _mapper;
|
|
||||||
|
|
||||||
private readonly IRepository<EmailTemplate> _repository;
|
|
||||||
|
|
||||||
private readonly IMediator _mediator;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initialisiert eine neue Instanz der <see cref="EmailTemplateController"/>-Klasse.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="mapper">
|
|
||||||
/// <param name="repository">
|
|
||||||
/// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird.
|
|
||||||
/// </param>
|
|
||||||
[Obsolete("Use MediatR")]
|
|
||||||
public EmailTemplateController(IMapper mapper, IRepository<EmailTemplate> repository, IMediator mediator)
|
|
||||||
{
|
|
||||||
_mapper = mapper;
|
|
||||||
_repository = repository;
|
|
||||||
_mediator = mediator;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ruft E-Mail-Vorlagen basierend auf der angegebenen Abfrage ab.
|
/// Ruft E-Mail-Vorlagen basierend auf der angegebenen Abfrage ab.
|
||||||
/// Gibt alles zurück, wenn keine Id- oder Typ-Informationen eingegeben wurden.
|
/// Gibt alles zurück, wenn keine Id- oder Typ-Informationen eingegeben wurden.
|
||||||
@@ -63,12 +50,12 @@ public class EmailTemplateController : ControllerBase
|
|||||||
{
|
{
|
||||||
if (emailTemplate is null || (emailTemplate.Id is null && emailTemplate.Type is null))
|
if (emailTemplate is null || (emailTemplate.Id is null && emailTemplate.Type is null))
|
||||||
{
|
{
|
||||||
var temps = await _repository.Query.ToListAsync();
|
var temps = await repository.Query.ToListAsync();
|
||||||
return Ok(_mapper.Map<IEnumerable<EmailTemplateDto>>(temps));
|
return Ok(mapper.Map<IEnumerable<EmailTemplateDto>>(temps));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var temp = await _mediator.Send(emailTemplate);
|
var temp = await mediator.Send(emailTemplate);
|
||||||
return temp is null ? NotFound() : Ok(temp);
|
return temp is null ? NotFound() : Ok(temp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,7 +86,7 @@ public class EmailTemplateController : ControllerBase
|
|||||||
{
|
{
|
||||||
if (update is null)
|
if (update is null)
|
||||||
{
|
{
|
||||||
await _mediator.Send(new ResetEmailTemplateCommand(temp));
|
await mediator.Send(new ResetEmailTemplateCommand(temp));
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
else if (temp is null)
|
else if (temp is null)
|
||||||
@@ -109,7 +96,7 @@ public class EmailTemplateController : ControllerBase
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
update.EmailTemplateQuery = temp;
|
update.EmailTemplateQuery = temp;
|
||||||
await _mediator.Send(update);
|
await mediator.Send(update);
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user