From c0a6103eb2f05e2c6bbbcbd9fd3b8fd819eaf822 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 17 Jun 2024 11:58:17 +0200 Subject: [PATCH] =?UTF-8?q?Hinzuf=C3=BCgen=20eines=20neuen=20Endpunkts=20z?= =?UTF-8?q?um=20EnvelopeReceiverController=20zum=20Abrufen=20von=20Umschla?= =?UTF-8?q?gempf=C3=A4ngerdaten=20anhand=20des=20Benutzernamens=20mit=20Au?= =?UTF-8?q?torisierung=20und=20Protokollierung.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/EnvelopeReceiverController.cs | 52 +++++++++++++------ 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs index e6bd87b2..35baa429 100644 --- a/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs +++ b/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs @@ -1,33 +1,53 @@ -using DigitalData.Core.API; +using DigitalData.Core.DTO; using EnvelopeGenerator.Application.Contracts; -using EnvelopeGenerator.Application.DTOs; -using EnvelopeGenerator.Domain.Entities; using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Infrastructure; +using System.DirectoryServices.Protocols; namespace EnvelopeGenerator.GeneratorAPI.Controllers { [Route("api/[controller]")] [ApiController] - public class EnvelopeReceiverController : BasicCRUDControllerBase - { - public EnvelopeReceiverController(ILogger logger, IEnvelopeReceiverService service) : base(logger, service) + public class EnvelopeReceiverController : ControllerBase + { + private readonly ILogger _logger; + private readonly IEnvelopeReceiverService _erService; + + public EnvelopeReceiverController(ILogger logger, IEnvelopeReceiverService envelopeReceiverService) { + _logger = logger; + _erService = envelopeReceiverService; } - + [Authorize] - [HttpGet("claims")] - public IActionResult GetClaims() + [HttpGet] + public async Task GetEnvelopeReceiver() { + try + { + var username = this.GetUsername(); - var claims = new { - User.Identity?.IsAuthenticated, - Id = this.GetId(), - Email = this.GetEmail() - }; + if (username is null) + { + _logger.LogError(@"Envelope Receiver dto cannot be sent because username claim is null. Potential authentication and authorization error. The value of other claims are [id: {id}], [username: {username}], [name: {name}], [prename: {prename}], [email: {email}].", + this.GetId(), this.GetUsername(), this.GetName(), this.GetPrename(), this.GetEmail()); + return StatusCode(StatusCodes.Status500InternalServerError); + } - return Ok(claims); + return await _erService.ReadByUsernameAsync(username).ThenAsync( + Success: Ok, + Fail: IActionResult (msg, ntc) => + { + _logger.LogNotice(ntc); + return StatusCode(StatusCodes.Status500InternalServerError, msg); + }); + } + catch(Exception ex) + { + _logger.LogError(ex, "An unexpected error occurred. {message}", ex.Message); + return new StatusCodeResult(StatusCodes.Status500InternalServerError); + } } } } \ No newline at end of file