Simplified the Get method to always require a ReadEmailTemplateQuery and CancellationToken, delegating all queries to the mediator. Removed conditional logic for handling null or missing parameters. Updated XML documentation to reflect the new method signature.
69 lines
3.0 KiB
C#
69 lines
3.0 KiB
C#
using AutoMapper;
|
|
using EnvelopeGenerator.Application.EmailTemplates.Commands;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using MediatR;
|
|
using EnvelopeGenerator.Application.Common.Dto;
|
|
using DigitalData.Core.Abstraction.Application.Repository;
|
|
using EnvelopeGenerator.Domain.Entities;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using EnvelopeGenerator.Domain.Constants;
|
|
using EnvelopeGenerator.Application.EmailTemplates.Queries;
|
|
|
|
namespace EnvelopeGenerator.API.Controllers;
|
|
|
|
/// <summary>
|
|
/// Controller for managing temp templates.
|
|
/// Steuerung zur Verwaltung von E-Mail-Vorlagen.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Initialisiert eine neue Instanz der <see cref="EmailTemplateController"/>-Klasse.
|
|
/// </remarks>
|
|
/// <param name="mediator">
|
|
/// Die Mediator-Instanz, die zum Senden von Befehlen und Abfragen verwendet wird.
|
|
/// </param>
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
[Authorize(Policy = AuthPolicy.Sender)]
|
|
public class EmailTemplateController(IMediator mediator) : ControllerBase
|
|
{
|
|
/// <summary>
|
|
/// Ruft E-Mail-Vorlagen basierend auf der angegebenen Abfrage ab.
|
|
/// Gibt alles zurück, wenn keine Id- oder Typ-Informationen eingegeben wurden.
|
|
/// </summary>
|
|
/// <param name="emailTemplate">Die Abfrageparameter zum Abrufen von E-Mail-Vorlagen.</param>
|
|
/// <param name="cancel"></param>
|
|
/// <returns>Gibt HTTP-Antwort zurück</returns>
|
|
/// <remarks>
|
|
/// Sample request:
|
|
/// GET /api/EmailTemplate?emailTemplateId=123
|
|
/// </remarks>
|
|
/// <response code="200">Wenn die E-Mail-Vorlagen erfolgreich abgerufen werden.</response>
|
|
/// <response code="400">Wenn die Abfrageparameter ungültig sind.</response>
|
|
/// <response code="401">Wenn der Benutzer nicht authentifiziert ist.</response>
|
|
/// <response code="404">Wenn die gesuchte Abfrage nicht gefunden wird.</response>
|
|
[HttpGet]
|
|
public async Task<IActionResult> Get([FromQuery] ReadEmailTemplateQuery emailTemplate, CancellationToken cancel)
|
|
{
|
|
var result = await mediator.Send(emailTemplate, cancel);
|
|
return Ok(result);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Updates an temp template or resets it if no update command is provided.
|
|
/// Aktualisiert eine E-Mail-Vorlage oder setzt sie zurück, wenn kein Aktualisierungsbefehl angegeben ist.
|
|
/// </summary>
|
|
/// <param name="update"></param>
|
|
/// <param name="cancel"></param>
|
|
/// <returns></returns>
|
|
/// <response code="200">Wenn die E-Mail-Vorlage erfolgreich aktualisiert oder zurückgesetzt wird.</response>
|
|
/// <response code="400">Wenn die Abfrage ohne einen String gesendet wird.</response>
|
|
/// <response code="401">Wenn der Benutzer nicht authentifiziert ist.</response>
|
|
/// <response code="404">Wenn die gesuchte Abfrage nicht gefunden wird.</response>
|
|
[HttpPut]
|
|
public async Task<IActionResult> Update([FromBody] UpdateEmailTemplateCommand update, CancellationToken cancel)
|
|
{
|
|
await mediator.Send(update, cancel);
|
|
return Ok();
|
|
}
|
|
} |