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:
@@ -3,9 +3,7 @@
|
|||||||
namespace EnvelopeGenerator.Application.EnvelopeReceivers;
|
namespace EnvelopeGenerator.Application.EnvelopeReceivers;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Stellt eine Abfrage zum Lesen eines Envelope-Empfängers dar.
|
/// Stellt eine Abfrage für einen Envelope-Empfänger dar.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="MinStatus"></param>
|
/// <param name="Status">Der Status der Abfrage, optional.</param>
|
||||||
/// <param name="MaxStatus"></param>
|
public record EnvelopeReceiverQuery(StatusQuery? Status = null);
|
||||||
/// <param name="IgnoreStatus"></param>
|
|
||||||
public record EnvelopeReceiverQuery(StatusQuery Status);
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace EnvelopeGenerator.Application.EnvelopeReceivers.Queries.Read;
|
|||||||
/// sowie zusätzliche Metadaten.
|
/// sowie zusätzliche Metadaten.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
/// <param name="Status">Umschlag oder Empfängerstatus.</param>
|
/// <param name="Status">Umschlag oder Empfängerstatus.</param>
|
||||||
public record ReadEnvelopeReceiverQuery(StatusQuery Status) : EnvelopeReceiverQuery(Status), IRequest<ReadEnvelopeReceiverResponse>
|
public record ReadEnvelopeReceiverQuery(StatusQuery? Status = null) : EnvelopeReceiverQuery(Status), IRequest<ReadEnvelopeReceiverResponse>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Der Umschlag, der mit dem Empfänger verknüpft ist.
|
/// Der Umschlag, der mit dem Empfänger verknüpft ist.
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using EnvelopeGenerator.Application.Receivers.Queries.Read;
|
||||||
|
|
||||||
|
namespace EnvelopeGenerator.Application.Envelopes.Queries.ReceiverName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Eine Abfrage, um die zuletzt verwendete Anrede eines Empfängers zu ermitteln,
|
||||||
|
/// damit diese für zukünftige Umschläge wiederverwendet werden kann.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="Envelope">Der Umschlag, für den die Anrede des Empfängers ermittelt werden soll.</param>
|
||||||
|
/// <param name="OnlyLast">Gibt an, ob nur die zuletzt verwendete Anrede zurückgegeben werden soll.</param>
|
||||||
|
public record ReadReceiverNameQuery(EnvelopeQuery? Envelope = null, bool OnlyLast = true) : ReadReceiverQuery
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -2,6 +2,8 @@
|
|||||||
using EnvelopeGenerator.Application.Contracts.Services;
|
using EnvelopeGenerator.Application.Contracts.Services;
|
||||||
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands.Create;
|
using EnvelopeGenerator.Application.EnvelopeReceivers.Commands.Create;
|
||||||
using EnvelopeGenerator.Application.EnvelopeReceivers.Queries.Read;
|
using EnvelopeGenerator.Application.EnvelopeReceivers.Queries.Read;
|
||||||
|
using EnvelopeGenerator.Application.Envelopes.Queries.ReceiverName;
|
||||||
|
using EnvelopeGenerator.Common;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
@@ -48,7 +50,9 @@ public class EnvelopeReceiverController : ControllerBase
|
|||||||
/// Wenn der Benutzername nicht ermittelt werden kann, wird ein Serverfehler zurückgegeben.
|
/// Wenn der Benutzername nicht ermittelt werden kann, wird ein Serverfehler zurückgegeben.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
/// <response code="200">Die Liste der Umschlagempfänger wurde erfolgreich abgerufen.</response>
|
/// <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>
|
/// <response code="500">Ein unerwarteter Fehler ist aufgetreten.</response>
|
||||||
|
[Authorize]
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public async Task<IActionResult> GetEnvelopeReceiver([FromQuery] ReadEnvelopeReceiverQuery envelopeReceiver)
|
public async Task<IActionResult> GetEnvelopeReceiver([FromQuery] ReadEnvelopeReceiverQuery envelopeReceiver)
|
||||||
{
|
{
|
||||||
@@ -79,23 +83,24 @@ public class EnvelopeReceiverController : ControllerBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <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>
|
/// </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>
|
/// <returns>Eine HTTP-Antwort mit dem Namen des Empfängers oder einem Fehlerstatus.</returns>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Dieser Endpunkt ermöglicht es, den Namen des letzten Empfängers abzurufen, der mit der angegebenen E-Mail-Adresse verknüpft ist.
|
/// Dieser Endpunkt ermöglicht es, den Namen des zuletzt verwendeten Empfängers basierend auf der E-Mail-Adresse abzurufen.
|
||||||
/// Wenn kein Empfänger gefunden wird, wird ein leerer String zurückgegeben.
|
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
/// <response code="200">Der Name des Empfängers wurde erfolgreich abgerufen.</response>
|
/// <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>
|
/// <response code="500">Ein unerwarteter Fehler ist aufgetreten.</response>
|
||||||
[HttpGet("receiver-name/{mail}")]
|
[Authorize]
|
||||||
public async Task<IActionResult> GetReceiverName([FromRoute] string mail)
|
[HttpGet("salute")]
|
||||||
|
public async Task<IActionResult> GetReceiverName([FromQuery] ReadReceiverNameQuery receiverName)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return await _erService.ReadLastUsedReceiverNameByMail(mail).ThenAsync(
|
return await _erService.ReadLastUsedReceiverNameByMail(receiverName.EmailAddress).ThenAsync(
|
||||||
Success: res => res is null ? Ok(string.Empty) : Ok(res),
|
Success: res => res is null ? Ok(string.Empty) : Ok(res),
|
||||||
Fail: IActionResult (msg, ntc) =>
|
Fail: IActionResult (msg, ntc) =>
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user