- Repository-Schnittstellen wurden in die Anwendungsschicht verschoben. - Erweiterungsmethoden für die Injektion von Repository-Abhängigkeiten wurden in die Infrastruktur verschoben.
89 lines
3.2 KiB
C#
89 lines
3.2 KiB
C#
using DigitalData.Core.API;
|
|
using DigitalData.Core.DTO;
|
|
using EnvelopeGenerator.Application.Contracts.Services;
|
|
using EnvelopeGenerator.Application.DTOs.Receiver;
|
|
using EnvelopeGenerator.Domain.Entities;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace EnvelopeGenerator.GeneratorAPI.Controllers
|
|
{
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
[Authorize]
|
|
public class ReceiverController : CRUDControllerBaseWithErrorHandling<IReceiverService, ReceiverCreateDto, ReceiverReadDto, ReceiverUpdateDto, Receiver, int>
|
|
{
|
|
public ReceiverController(ILogger<ReceiverController> logger, IReceiverService service) : base(logger, service)
|
|
{
|
|
}
|
|
|
|
[HttpGet]
|
|
public async Task<IActionResult> Get([FromQuery] string? emailAddress = null, [FromQuery] string? signature = null)
|
|
{
|
|
if (emailAddress is null && signature is null)
|
|
return await base.GetAll();
|
|
|
|
try
|
|
{
|
|
return await _service.ReadByAsync(emailAddress: emailAddress, signature: signature).ThenAsync(
|
|
Success: Ok,
|
|
Fail: IActionResult (msg, ntc) =>
|
|
{
|
|
_logger.LogNotice(ntc);
|
|
return StatusCode(StatusCodes.Status500InternalServerError);
|
|
});
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
_logger.LogError(ex, "{Message}", ex.Message);
|
|
return StatusCode(StatusCodes.Status500InternalServerError);
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
public async override Task<IActionResult> Create(ReceiverCreateDto createDto)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
return await base.Create(createDto);
|
|
}
|
|
|
|
[HttpDelete]
|
|
public async Task<IActionResult> Delete([FromQuery] int? id = null, [FromQuery]string? emailAddress = null, [FromQuery] string? signature = null)
|
|
{
|
|
if(id is int id_int)
|
|
return await base.Delete(id_int);
|
|
|
|
try
|
|
{
|
|
if (emailAddress is not null || signature is not null)
|
|
return await _service.DeleteByAsync(emailAddress: emailAddress, signature: signature).ThenAsync(
|
|
Success: Ok,
|
|
Fail: IActionResult (msg, ntc) =>
|
|
{
|
|
_logger.LogNotice(ntc);
|
|
return StatusCode(StatusCodes.Status500InternalServerError);
|
|
});
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
_logger.LogError(ex, "{Message}", ex.Message);
|
|
return StatusCode(500);
|
|
}
|
|
|
|
return BadRequest();
|
|
}
|
|
|
|
#region REMOVED ENDPOINTS
|
|
[NonAction]
|
|
public override Task<IActionResult> GetAll() => base.GetAll();
|
|
|
|
[NonAction]
|
|
public override Task<IActionResult> Delete([FromRoute] int id) => base.Delete(id);
|
|
|
|
[NonAction]
|
|
public override Task<IActionResult> Update(ReceiverUpdateDto updateDto) => base.Update(updateDto);
|
|
#endregion
|
|
}
|
|
} |