using MediatR; using EnvelopeGenerator.Application.Receivers.Queries; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace EnvelopeGenerator.GeneratorAPI.Controllers; /// /// Controller für die Verwaltung von Empfängern. /// /// /// Dieser Controller bietet Endpunkte für das Abrufen von Empfängern basierend auf E-Mail-Adresse oder Signatur. /// [Route("api/[controller]")] [ApiController] [Authorize] public class ReceiverController : ControllerBase { private readonly IMediator _mediator; /// /// Initialisiert eine neue Instanz des -Controllers. /// /// Mediator für Anfragen. public ReceiverController(IMediator mediator) { _mediator = mediator; } /// /// Ruft eine Liste von Empfängern ab, basierend auf den angegebenen Abfrageparametern. /// /// Die Abfrageparameter, einschließlich E-Mail-Adresse und Signatur. /// Eine Liste von Empfängern oder ein Fehlerstatus. [HttpGet] public async Task Get([FromQuery] ReadReceiverQuery receiver) { if (!receiver.HasAnyCriteria) { var all = await _mediator.Send(new ReadReceiverQuery()); return Ok(all); } var result = await _mediator.Send(receiver); return result is null ? NotFound() : Ok(result); } }