using FastEndpoints; using FrameworkBLL.PDFEncrypt; using FrameworkBLL.Port; using FrameworkSL.Endpoints.Port; using GB5Shared.DTO.Framework.Login; using GB5Shared.DTO.Framework.ResponseStandard; using GB5Shared.FastEndPoint; using static GB5Shared.GB5Constant.Constant; namespace FrameworkSL.Endpoints.PDF { public class PDFEncrypt : BaseEndpoint { private readonly IPDFEncryptBLL _PDFEncryptBLL; public PDFEncrypt(IPDFEncryptBLL IPDFEncryptBLL) { _PDFEncryptBLL = IPDFEncryptBLL; } public override void Configure() { Post("/PDF/PDFEncrypt"); AllowAnonymous(); } public record ParameterGetPDFEncrypt( [property: FromBody] Base64 Base64PDF, [property: FromHeader] string Login ); protected override async Task> ExecuteAsync(ParameterGetPDFEncrypt req, LoginDTO loginDTO, CancellationToken ct) { try { var result = await _PDFEncryptBLL.EncryptPdfBase64(req.Base64PDF.Base64PDF!, loginDTO!); return await GB5Shared.ResponseStandard.Response.CreateSuccessResponse(result, CacheKeyLevel.USER_LEVEL, loginDTO); } catch (Exception ex) { return await GB5Shared.ResponseStandard.Response.CreateExceptionError(ex, CacheKeyLevel.USER_LEVEL, loginDTO, ex.Message, 500); } } public class Base64 { public string? Base64PDF { get; set; } } } }