From 9adb49df78b9485ddd9ed7d9349290ec499f82bc Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Fri, 6 Sep 2024 15:19:18 +0200 Subject: [PATCH] Refaktorisierung von EnvelopeReceiverService und EnvelopeReceiverController MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Methode `ReadSecretByUuidAsync` zu `EnvelopeReceiverService` hinzugefügt, um Geheimnisse anhand der UUID abzurufen. - Fehlerbehandlung und Protokollierung in den Methoden von `EnvelopeReceiverService` verbessert, einschließlich besserer Handhabung von Sicherheitsvorfällen und Datenintegritätsproblemen. - `VerifyAccessCodeAsync` aktualisiert, um explizite Nachrichten für Sicherheitsvorfälle und Datenintegritätsprobleme zu enthalten. - `EnvelopeReceiverController` aktualisiert, um einen neuen Endpunkt `GetSecretAsync` zum Abrufen von Geheimnissen anhand der UUID einzuführen. - Fehlerbehandlung und Protokollierung in den Methoden von `EnvelopeReceiverController` verbessert. - Endpunkte angepasst, um die neue Methode `ReadSecretByUuidAsync` in der Servicelogik zu nutzen. --- .../Contracts/IEnvelopeReceiverService.cs | 4 ++-- .../Services/EnvelopeReceiverService.cs | 14 ++++++-------- .../Controllers/EnvelopeReceiverController.cs | 7 ++++--- .../Contracts/IEnvelopeReceiverRepository.cs | 2 -- .../Repositories/EnvlopeReceiverRepository.cs | 7 +------ 5 files changed, 13 insertions(+), 21 deletions(-) diff --git a/EnvelopeGenerator.Application/Contracts/IEnvelopeReceiverService.cs b/EnvelopeGenerator.Application/Contracts/IEnvelopeReceiverService.cs index 0d5f476a..285ed11d 100644 --- a/EnvelopeGenerator.Application/Contracts/IEnvelopeReceiverService.cs +++ b/EnvelopeGenerator.Application/Contracts/IEnvelopeReceiverService.cs @@ -11,6 +11,8 @@ namespace EnvelopeGenerator.Application.Contracts Task>> ReadByUuidAsync(string uuid, bool withEnvelope = true, bool withReceiver = false); + Task>> ReadSecretByUuidAsync(string uuid, bool withEnvelope = false, bool withReceiver = true); + Task>> ReadBySignatureAsync(string signature, bool withEnvelope = false, bool withReceiver = true); Task> ReadByUuidSignatureAsync(string uuid, string signature, bool withEnvelope = true, bool withReceiver = true); @@ -28,7 +30,5 @@ namespace EnvelopeGenerator.Application.Contracts Task>> ReadByUsernameAsync(string username, int? min_status = null, int? max_status = null, params int[] ignore_statuses); Task> ReadLastUsedReceiverNameByMail(string mail); - - Task>> ReadReceiverByEnvelopeAsync(string uuid); } } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs b/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs index 9eecce1c..f995941e 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeReceiverService.cs @@ -3,7 +3,6 @@ using DigitalData.Core.Application; using DigitalData.Core.DTO; using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; -using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Application.Resources; using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Infrastructure.Contracts; @@ -34,6 +33,12 @@ namespace EnvelopeGenerator.Application.Services return Result.Success(_mapper.MapOrThrow>(env_rcvs)); } + public async Task>> ReadSecretByUuidAsync(string uuid, bool withEnvelope = false, bool withReceiver = true) + { + var env_rcvs = await _repository.ReadByUuidAsync(uuid: uuid, withEnvelope: withEnvelope, withReceiver: withReceiver); + return Result.Success(_mapper.MapOrThrow>(env_rcvs)); + } + public async Task> ReadByUuidSignatureAsync(string uuid, string signature, bool withEnvelope = true, bool withReceiver = true) { var env_rcv = await _repository.ReadByUuidSignatureAsync(uuid: uuid, signature: signature, withEnvelope: withEnvelope, withReceiver: withReceiver); @@ -129,12 +134,5 @@ namespace EnvelopeGenerator.Application.Services var er = await _repository.ReadLastByReceiver(mail); return er is null ? Result.Fail().Notice(LogLevel.None, Flag.NotFound) : Result.Success(er.Name); } - - public async Task>> ReadReceiverByEnvelopeAsync(string uuid) - { - var receivers = await _repository.ReadReceiverByEnvelopeAsync(uuid); - var receiverDtos = _mapper.MapOrThrow>(receivers); - return Result.Success(receiverDtos); - } } } \ No newline at end of file diff --git a/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs b/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs index 55653c27..b5a9c989 100644 --- a/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs +++ b/EnvelopeGenerator.GeneratorAPI/Controllers/EnvelopeReceiverController.cs @@ -74,12 +74,13 @@ namespace EnvelopeGenerator.GeneratorAPI.Controllers } } - [HttpGet("receiver")] - public async Task GetReceiverByEnvelopeAsync([FromQuery] string uuid) + [HttpGet("secret")] + [Authorize] + public async Task GetSecretAsync([FromQuery] string uuid) { try { - return await _erService.ReadReceiverByEnvelopeAsync(uuid: uuid).ThenAsync( + return await _erService.ReadSecretByUuidAsync(uuid: uuid).ThenAsync( Success: Ok, Fail: IActionResult (msg, ntc) => { diff --git a/EnvelopeGenerator.Infrastructure/Contracts/IEnvelopeReceiverRepository.cs b/EnvelopeGenerator.Infrastructure/Contracts/IEnvelopeReceiverRepository.cs index a12e816b..8bcd8dd1 100644 --- a/EnvelopeGenerator.Infrastructure/Contracts/IEnvelopeReceiverRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Contracts/IEnvelopeReceiverRepository.cs @@ -22,7 +22,5 @@ namespace EnvelopeGenerator.Infrastructure.Contracts Task> ReadByUsernameAsync(string username, int? min_status = null, int? max_status = null, params int[] ignore_statuses); Task ReadLastByReceiver(string email); - - Task> ReadReceiverByEnvelopeAsync(string uuid); } } \ No newline at end of file diff --git a/EnvelopeGenerator.Infrastructure/Repositories/EnvlopeReceiverRepository.cs b/EnvelopeGenerator.Infrastructure/Repositories/EnvlopeReceiverRepository.cs index 2d207afa..6b6f6bbd 100644 --- a/EnvelopeGenerator.Infrastructure/Repositories/EnvlopeReceiverRepository.cs +++ b/EnvelopeGenerator.Infrastructure/Repositories/EnvlopeReceiverRepository.cs @@ -79,11 +79,6 @@ namespace EnvelopeGenerator.Infrastructure.Repositories public async Task ReadLastByReceiver(string email) { return await _dbSet.Where(er => er.Receiver!.EmailAddress == email).OrderBy(er => er.EnvelopeId).LastOrDefaultAsync(); - } - - public async Task> ReadReceiverByEnvelopeAsync(string uuid) - => await ReadWhere(uuid: uuid, withEnvelope: false, withReceiver: true) - .Select(er => er.Receiver!) - .ToListAsync(); + } } } \ No newline at end of file