using DigitalData.Core.API; using DigitalData.Core.DTO; using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Application; using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Infrastructure.Contracts; using Microsoft.AspNetCore.Mvc; namespace EnvelopeGenerator.Web.Controllers.Test { public class TestEnvelopeReceiverController : TestControllerBase { public TestEnvelopeReceiverController(ILogger logger, IEnvelopeReceiverService service) : base(logger, service) { } [HttpGet("verify-access-code/{envelope_receiver_id}")] public async Task VerifyAccessCode([FromRoute] string envelope_receiver_id, [FromQuery] string access_code) { var verification = await _service.VerifyAccessCodeAsync(envelopeReceiverId:envelope_receiver_id, accessCode: access_code); if (verification.IsSuccess) return Ok(verification); else if (verification.HasFlag(Flag.SecurityBreach)) return Forbid(); else if (verification.HasFlag(Flag.SecurityBreachOrDataIntegrity)) return Conflict(); else return this.InnerServiceError(verification); } [HttpGet("e-r-id/{envelope_receiver_id}")] public async Task GetByEnvelopeReceiverId([FromRoute] string envelope_receiver_id) { var er_result = await _service.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId: envelope_receiver_id); if (er_result.IsSuccess) return Ok(er_result); else return this.InnerServiceError(er_result); } [HttpGet("decode")] public IActionResult DecodeEnvelopeReceiverId(string envelopeReceiverId) { var decoded = envelopeReceiverId.DecodeEnvelopeReceiverId(); return Ok(new { uuid = decoded.EnvelopeUuid, signature = decoded.ReceiverSignature }); } } }