Update ReceiverController namespace and enhance Get method

The namespace of the `ReceiverController` class was updated from `EnvelopeGenerator.GeneratorAPI.Controllers` to `EnvelopeGenerator.Server.Controllers`.

The `Get` method was enhanced with the following changes:
- Added `[Authorize]` attribute with `AuthScheme.Sender`.
- Updated the method signature to include an optional `ReadReceiverQuery? receiver` parameter (defaulting to `null`) and a new `bool onlyEmailAddress` parameter (defaulting to `false`).
- Modified logic to handle `receiver` being `null` by creating a new `ReadReceiverQuery`.
- Added handling for `onlyEmailAddress` to return a list of email addresses if true.
- Simplified the result handling and removed the previous `receiver.HasAnyCriteria` logic.
This commit is contained in:
2026-07-01 15:16:17 +02:00
parent cc2aea90ed
commit 6120e6062e

View File

@@ -3,7 +3,7 @@ using EnvelopeGenerator.Application.Receivers.Queries;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace EnvelopeGenerator.GeneratorAPI.Controllers; namespace EnvelopeGenerator.Server.Controllers;
/// <summary> /// <summary>
/// Controller für die Verwaltung von Empfängern. /// Controller für die Verwaltung von Empfängern.
@@ -33,15 +33,16 @@ public class ReceiverController : ControllerBase
/// <param name="receiver">Die Abfrageparameter, einschließlich E-Mail-Adresse und Signatur.</param> /// <param name="receiver">Die Abfrageparameter, einschließlich E-Mail-Adresse und Signatur.</param>
/// <returns>Eine Liste von Empfängern oder ein Fehlerstatus.</returns> /// <returns>Eine Liste von Empfängern oder ein Fehlerstatus.</returns>
[HttpGet] [HttpGet]
public async Task<IActionResult> Get([FromQuery] ReadReceiverQuery receiver) [Authorize(AuthenticationSchemes = AuthScheme.Sender)]
public async Task<IActionResult> Get([FromQuery] ReadReceiverQuery? receiver = null, [FromQuery] bool onlyEmailAddress = false)
{ {
if (!receiver.HasAnyCriteria) var result = await _mediator.Send(receiver ?? new ReadReceiverQuery());
{
var all = await _mediator.Send(new ReadReceiverQuery());
return Ok(all);
}
var result = await _mediator.Send(receiver); if (result is null)
return result is null ? NotFound() : Ok(result); return NotFound();
else if (onlyEmailAddress)
return Ok(result.Select(r => r.EmailAddress).ToList());
else
return Ok(result);
} }
} }