diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/ReceiverController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/ReceiverController.cs index 653e6c4c..8da7ee87 100644 --- a/EnvelopeGenerator.GeneratorAPI/Controllers/ReceiverController.cs +++ b/EnvelopeGenerator.GeneratorAPI/Controllers/ReceiverController.cs @@ -7,84 +7,74 @@ using EnvelopeGenerator.Domain.Entities; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -namespace EnvelopeGenerator.GeneratorAPI.Controllers +namespace EnvelopeGenerator.GeneratorAPI.Controllers; + +/// +/// Controller für die Verwaltung von Empfängern. +/// +/// +/// Dieser Controller bietet Endpunkte für CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) +/// sowie zusätzliche Funktionen wie das Abrufen von Empfängern basierend auf E-Mail-Adresse oder Signatur. +/// +[Route("api/[controller]")] +[ApiController] +[Authorize] +public class ReceiverController : CRUDControllerBaseWithErrorHandling { - [Route("api/[controller]")] - [ApiController] - [Authorize] - public class ReceiverController : CRUDControllerBaseWithErrorHandling + /// + /// Initialisiert eine neue Instanz des -Controllers. + /// + /// Der Logger für die Protokollierung. + /// Der Dienst für Empfängeroperationen. + public ReceiverController(ILogger logger, IReceiverService service) : base(logger, service) { - public ReceiverController(ILogger logger, IReceiverService service) : base(logger, service) - { - } - - [HttpGet] - public async Task Get([FromQuery] ReadReceiverQuery receiver) - { - if (receiver.EmailAddress is null && receiver.Signature is null) - return await base.GetAll(); - - try - { - return await _service.ReadByAsync(emailAddress: receiver.EmailAddress, signature: receiver.Signature).ThenAsync( - Success: Ok, - Fail: IActionResult (msg, ntc) => - { - _logger.LogNotice(ntc); - return StatusCode(StatusCodes.Status500InternalServerError); - }); - } - catch(Exception ex) - { - _logger.LogError(ex, "{Message}", ex.Message); - return StatusCode(StatusCodes.Status500InternalServerError); - } - } - - [HttpPost] - public async override Task Create(ReceiverCreateDto createDto) - { - if (!ModelState.IsValid) - return BadRequest(ModelState); - - return await base.Create(createDto); - } - - [HttpDelete] - public async Task Delete([FromQuery] ReadReceiverQuery receiver) - { - if(receiver.Id is int id_int) - return await base.Delete(id_int); - - try - { - if (receiver.EmailAddress is not null || receiver.Signature is not null) - return await _service.DeleteByAsync(emailAddress: receiver.EmailAddress, signature: receiver.Signature).ThenAsync( - Success: Ok, - Fail: IActionResult (msg, ntc) => - { - _logger.LogNotice(ntc); - return StatusCode(StatusCodes.Status500InternalServerError); - }); - } - catch(Exception ex) - { - _logger.LogError(ex, "{Message}", ex.Message); - return StatusCode(500); - } - - return BadRequest(); - } - - #region REMOVED ENDPOINTS - [NonAction] - public override Task GetAll() => base.GetAll(); - - [NonAction] - public override Task Delete([FromRoute] int id) => base.Delete(id); - - [NonAction] - public override Task Update(ReceiverUpdateDto updateDto) => base.Update(updateDto); - #endregion } -} \ No newline at end of file + + /// + /// 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.EmailAddress is null && receiver.Signature is null) + return await base.GetAll(); + + try + { + return await _service.ReadByAsync(emailAddress: receiver.EmailAddress, signature: receiver.Signature).ThenAsync( + Success: Ok, + Fail: IActionResult (msg, ntc) => + { + _logger.LogNotice(ntc); + return StatusCode(StatusCodes.Status500InternalServerError); + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } + } + + #region REMOVED ENDPOINTS + /// + /// Diese Methode ist deaktiviert und wird nicht verwendet. + /// + [NonAction] + public override Task GetAll() => base.GetAll(); + + /// + /// Diese Methode ist deaktiviert und wird nicht verwendet. + /// + [NonAction] + public override Task Delete([FromRoute] int id) => base.Delete(id); + + /// + /// Diese Methode ist deaktiviert und wird nicht verwendet. + /// + [NonAction] + public override Task Update(ReceiverUpdateDto updateDto) => base.Update(updateDto); + #endregion +}