Updated `Authorize` attributes in multiple controllers to use `AuthenticationSchemes = AuthScheme.Sender` instead of `Policy = AuthPolicy.Sender`, reflecting a shift in the authentication mechanism. Added detailed logging in `EnvelopeReceiverController` to handle cases where stored procedures return `OUT_SUCCESS=false`, providing contextual information for debugging. Removed unused SQL code and declarations in `EnvelopeReceiverController` to improve code readability and maintainability.
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.Server.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(AuthenticationSchemes = AuthScheme.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();
|
|
}
|
|
} |