Introduced multiple controllers to enhance application functionality: - `AnnotationController`: Manages annotations and signature lifecycle. - `AuthController`: Handles user authentication and session management. - `CacheController`: Manages cached data for receivers. - `ConfigController`: Exposes client configuration data. - `DocumentController`: Provides access to envelope documents. - `EmailTemplateController`: Manages email templates. - `EnvelopeController`: Manages envelope operations. - `EnvelopeReceiverController`: Handles envelope receiver data. - `EnvelopeTypeController`: Retrieves envelope types. - `HistoryController`: Accesses envelope history. - `IAuthController`: Defines authentication interface. - `LocalizationController`: Manages localization settings. - `ReadOnlyController`: Manages read-only envelope sharing. - `ReceiverController`: Retrieves receiver data. - `SignatureController`: Retrieves document signatures. - `TfaRegistrationController`: Manages two-factor authentication. These changes improve maintainability and scalability by organizing operations into dedicated controllers.
47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
using MediatR;
|
|
using EnvelopeGenerator.Application.Receivers.Queries;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace EnvelopeGenerator.GeneratorAPI.Controllers;
|
|
|
|
/// <summary>
|
|
/// Controller für die Verwaltung von Empfängern.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Dieser Controller bietet Endpunkte für das Abrufen von Empfängern basierend auf E-Mail-Adresse oder Signatur.
|
|
/// </remarks>
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
[Authorize]
|
|
public class ReceiverController : ControllerBase
|
|
{
|
|
private readonly IMediator _mediator;
|
|
|
|
/// <summary>
|
|
/// Initialisiert eine neue Instanz des <see cref="ReceiverController"/>-Controllers.
|
|
/// </summary>
|
|
/// <param name="mediator">Mediator für Anfragen.</param>
|
|
public ReceiverController(IMediator mediator)
|
|
{
|
|
_mediator = mediator;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Ruft eine Liste von Empfängern ab, basierend auf den angegebenen Abfrageparametern.
|
|
/// </summary>
|
|
/// <param name="receiver">Die Abfrageparameter, einschließlich E-Mail-Adresse und Signatur.</param>
|
|
/// <returns>Eine Liste von Empfängern oder ein Fehlerstatus.</returns>
|
|
[HttpGet]
|
|
public async Task<IActionResult> 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);
|
|
}
|
|
} |