using DigitalData.Core.API; using DigitalData.Core.DTO; using EnvelopeGenerator.Application.Contracts; using EnvelopeGenerator.Application.DTOs.Receiver; using EnvelopeGenerator.Domain.Entities; using Microsoft.AspNetCore.Mvc; using System.ComponentModel.DataAnnotations.Schema; namespace EnvelopeGenerator.GeneratorAPI.Controllers { [Route("api/[controller]")] [ApiController] public class ReceiverController : CRUDControllerBaseWithErrorHandling { public ReceiverController(ILogger logger, IReceiverService service) : base(logger, service) { } [NonAction] public override Task GetAll() { return base.GetAll(); } [HttpGet] public async Task Get([FromQuery] string? emailAddress = null, [FromQuery] string? signature = null) { if (emailAddress is null && signature is null) return await base.GetAll(); return await _service.ReadByAsync(emailAddress: emailAddress, signature: signature).ThenAsync( Success: Ok, Fail: IActionResult (msg,ntc) => { _logger.LogNotice(ntc); return StatusCode(StatusCodes.Status500InternalServerError); }); } } }