Enhance EnvelopeReceiver queries and controller

- Updated `EnvelopeReceiverQuery` to include an optional, nullable `Status` parameter.
- Modified `ReadEnvelopeReceiverQuery` to inherit from the updated `EnvelopeReceiverQuery`.
- Added new using directives in `EnvelopeReceiverController` and enhanced response documentation to include a 401 Unauthorized response.
- Implemented authorization for the `GetEnvelopeReceiver` method.
- Improved documentation and method signature for `GetReceiverName` to accept a `ReadReceiverNameQuery` object.
- Introduced a new `ReadReceiverNameQuery` record for querying the last used salutation of a receiver.
This commit is contained in:
Developer 02
2025-04-11 19:27:53 +02:00
parent 6cec82abd5
commit 9a950ae37d
4 changed files with 30 additions and 14 deletions

View File

@@ -2,6 +2,8 @@
using EnvelopeGenerator.Application.Contracts.Services;
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands.Create;
using EnvelopeGenerator.Application.EnvelopeReceivers.Queries.Read;
using EnvelopeGenerator.Application.Envelopes.Queries.ReceiverName;
using EnvelopeGenerator.Common;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@@ -48,7 +50,9 @@ public class EnvelopeReceiverController : ControllerBase
/// Wenn der Benutzername nicht ermittelt werden kann, wird ein Serverfehler zurückgegeben.
/// </remarks>
/// <response code="200">Die Liste der Umschlagempfänger wurde erfolgreich abgerufen.</response>
/// <response code="401">Wenn kein autorisierter Token vorhanden ist</response>
/// <response code="500">Ein unerwarteter Fehler ist aufgetreten.</response>
[Authorize]
[HttpGet]
public async Task<IActionResult> GetEnvelopeReceiver([FromQuery] ReadEnvelopeReceiverQuery envelopeReceiver)
{
@@ -79,23 +83,24 @@ public class EnvelopeReceiverController : ControllerBase
}
/// <summary>
/// Ruft den Namen des letzten verwendeten Empfängers basierend auf der angegebenen E-Mail-Adresse ab.
/// Ruft den Namen des zuletzt verwendeten Empfängers basierend auf der angegebenen E-Mail-Adresse ab.
/// </summary>
/// <param name="mail">Die E-Mail-Adresse des Empfängers.</param>
/// <param name="receiverName">Die Abfrage, die die E-Mail-Adresse des Empfängers enthält.</param>
/// <returns>Eine HTTP-Antwort mit dem Namen des Empfängers oder einem Fehlerstatus.</returns>
/// <remarks>
/// Dieser Endpunkt ermöglicht es, den Namen des letzten Empfängers abzurufen, der mit der angegebenen E-Mail-Adresse verknüpft ist.
/// Wenn kein Empfänger gefunden wird, wird ein leerer String zurückgegeben.
/// Dieser Endpunkt ermöglicht es, den Namen des zuletzt verwendeten Empfängers basierend auf der E-Mail-Adresse abzurufen.
/// </remarks>
/// <response code="200">Der Name des Empfängers wurde erfolgreich abgerufen.</response>
/// <response code="404">Kein Empfänger mit der angegebenen E-Mail-Adresse gefunden.</response>
/// <response code="401">Wenn kein autorisierter Token vorhanden ist</response>
/// <response code="404">Kein Empfänger gefunden.</response>
/// <response code="500">Ein unerwarteter Fehler ist aufgetreten.</response>
[HttpGet("receiver-name/{mail}")]
public async Task<IActionResult> GetReceiverName([FromRoute] string mail)
[Authorize]
[HttpGet("salute")]
public async Task<IActionResult> GetReceiverName([FromQuery] ReadReceiverNameQuery receiverName)
{
try
{
return await _erService.ReadLastUsedReceiverNameByMail(mail).ThenAsync(
return await _erService.ReadLastUsedReceiverNameByMail(receiverName.EmailAddress).ThenAsync(
Success: res => res is null ? Ok(string.Empty) : Ok(res),
Fail: IActionResult (msg, ntc) =>
{