From e3fbf4fc774bcd0f30c8e20a98b273ff9976efcd Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Thu, 5 Sep 2024 10:15:36 +0200 Subject: [PATCH] =?UTF-8?q?feat(api):=20Hinzuf=C3=BCgen=20des=20EnvelopeCo?= =?UTF-8?q?ntrollers=20mit=20GetCurrentAsync-Methode=20zur=20Umschlagabfra?= =?UTF-8?q?ge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Implementierung des `EnvelopeController` in der Route `api/envelope` mit der Methode `GetCurrentAsync`, um Umschläge basierend auf der Benutzer-ID abzurufen. - Fehlerbehandlung hinzugefügt, wenn die Benutzer-ID keine Ganzzahl ist, mit einem möglichen Problem bei der Erstellung der Claims-Liste. --- .../Controllers/EnvelopeController.cs | 50 +++++++++++++++++++ .../Controllers/ReceiverController.cs | 2 - 2 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeController.cs diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeController.cs new file mode 100644 index 00000000..1c3dcd14 --- /dev/null +++ b/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeController.cs @@ -0,0 +1,50 @@ +using DigitalData.Core.DTO; +using EnvelopeGenerator.Application.Contracts; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace EnvelopeGenerator.GeneratorAPI.Controllers +{ + [Route("api/[controller]")] + [ApiController] + [Authorize] + public class EnvelopeController : ControllerBase + { + private ILogger _logger; + private readonly IEnvelopeService _envelopeService; + + public EnvelopeController(ILogger logger, IEnvelopeService envelopeService) + { + _logger = logger; + _envelopeService = envelopeService; + } + + [Authorize] + public async Task GetCurrentAsync(bool current_user) + { + try + { + var id = this.GetId(); + + if (id is int intId) + return await _envelopeService.ReadByIdAsync(intId).ThenAsync( + Success: Ok, + Fail: IActionResult (msg, ntc) => + { + _logger.LogNotice(ntc); + return StatusCode(StatusCodes.Status500InternalServerError); + }); + else + { + _logger.LogError("Despite successful authorization, the 'api/envelope' route encountered an issue: the user ID is not recognized as an integer. This may be due to the removal of the ID during the creation of the claims list."); + return StatusCode(StatusCodes.Status500InternalServerError); + } + } + catch (Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } + } + } +} \ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/ReceiverController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/ReceiverController.cs index 9fbeea1c..4c057b92 100644 --- a/EnvelopeGenerator.GeneratorAPI/Controllers/ReceiverController.cs +++ b/EnvelopeGenerator.GeneratorAPI/Controllers/ReceiverController.cs @@ -17,8 +17,6 @@ namespace EnvelopeGenerator.GeneratorAPI.Controllers { } - - [HttpGet] public async Task Get([FromQuery] string? emailAddress = null, [FromQuery] string? signature = null) {