diff --git a/EnvelopeGenerator.Web/Controllers/DocumentController.cs b/EnvelopeGenerator.Web/Controllers/DocumentController.cs index 0670c5af..704559a2 100644 --- a/EnvelopeGenerator.Web/Controllers/DocumentController.cs +++ b/EnvelopeGenerator.Web/Controllers/DocumentController.cs @@ -3,76 +3,77 @@ using EnvelopeGenerator.CommonServices; using EnvelopeGenerator.Web.Services; using Microsoft.AspNetCore.Authorization; using EnvelopeGenerator.Extensions; -using static EnvelopeGenerator.CommonServices.Constants; using EnvelopeGenerator.Application.Contracts.Services; +using static EnvelopeGenerator.Domain.Constants; +using EnvelopeGenerator.Domain.Entities; -namespace EnvelopeGenerator.Web.Controllers +namespace EnvelopeGenerator.Web.Controllers; + +[Authorize(Roles = ReceiverRole.FullyAuth)] +[Route("api/[controller]")] +public class DocumentController : BaseController { - [Authorize(Roles = ReceiverRole.FullyAuth)] - [Route("api/[controller]")] - public class DocumentController : BaseController + private readonly EnvelopeOldService envelopeService; + private readonly ActionService? actionService; + [Obsolete("Use MediatR")] + private readonly IEnvelopeDocumentService _envDocService; + + [Obsolete("Use MediatR")] + public DocumentController(DatabaseService database, EnvelopeOldService envelope, IEnvelopeDocumentService envDocService, ILogger logger) : base(database, logger) { - private readonly EnvelopeOldService envelopeService; - private readonly ActionService? actionService; - private readonly IEnvelopeDocumentService _envDocService; - - public DocumentController(DatabaseService database, EnvelopeOldService envelope, IEnvelopeDocumentService envDocService, ILogger logger) : base(database, logger) - { - envelopeService = envelope; - actionService = database.Services?.actionService; - _envDocService = envDocService; - } - - [NonAction] - public async Task Get([FromRoute] string envelopeKey, [FromQuery] int index) - { - try - { - // Validate Envelope Key and load envelope - envelopeService.EnsureValidEnvelopeKey(envelopeKey); - EnvelopeReceiver response = await envelopeService.LoadEnvelope(envelopeKey); - - // Load document info - var document = await envelopeService.GetDocument(index, envelopeKey); - - // Load the document from disk - var bytes = await envelopeService.GetDocumentContents(document); - - // Return the document as bytes - return File(bytes, "application/octet-stream"); - } - catch(Exception ex) - { - _logger.LogError(ex, "{Message}", ex.Message); - return StatusCode(StatusCodes.Status500InternalServerError); - } - } - - [Authorize(Roles = ReceiverRole.FullyAuth)] - [HttpPost("{envelopeKey}")] - public async Task Open(string envelopeKey) - { - try - { - var authSignature = this.GetAuthReceiverSignature(); - - if (authSignature != envelopeKey.GetReceiverSignature()) - return Forbid(); - - // Validate Envelope Key and load envelope - envelopeService.EnsureValidEnvelopeKey(envelopeKey); - EnvelopeReceiver response = await envelopeService.LoadEnvelope(envelopeKey); - - actionService?.OpenEnvelope(response.Envelope, response.Receiver); - - return Ok(new object()); - } - catch(Exception ex) - { - _logger.LogError(ex, "{Message}", ex.Message); - return StatusCode(StatusCodes.Status500InternalServerError); - } - } - + envelopeService = envelope; + actionService = database.Services?.actionService; + _envDocService = envDocService; } -} + + [NonAction] + public async Task Get([FromRoute] string envelopeKey, [FromQuery] int index) + { + try + { + // Validate Envelope Key and load envelope + envelopeService.EnsureValidEnvelopeKey(envelopeKey); + EnvelopeReceiver response = await envelopeService.LoadEnvelope(envelopeKey); + + // Load document info + var document = await envelopeService.GetDocument(index, envelopeKey); + + // Load the document from disk + var bytes = await envelopeService.GetDocumentContents(document); + + // Return the document as bytes + return File(bytes, "application/octet-stream"); + } + catch(Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } + } + + [Authorize(Roles = ReceiverRole.FullyAuth)] + [HttpPost("{envelopeKey}")] + public async Task Open(string envelopeKey) + { + try + { + var authSignature = this.GetAuthReceiverSignature(); + + if (authSignature != envelopeKey.GetReceiverSignature()) + return Forbid(); + + // Validate Envelope Key and load envelope + envelopeService.EnsureValidEnvelopeKey(envelopeKey); + EnvelopeReceiver response = await envelopeService.LoadEnvelope(envelopeKey); + + actionService?.OpenEnvelope(response.Envelope, response.Receiver); + + return Ok(new object()); + } + catch(Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } + } +} \ No newline at end of file