Files
2026-03-17 09:53:09 -05:00

148 lines
5.3 KiB
C#

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.FeatureManagement.Mvc;
using LCU.API.Internal.Operations.IncentiveApi.Services.QueueServices;
using LCU.Library.Internal.Exceptions;
using LCU.Library.Internal.IncentiveApiModels.Requests;
using LCU.API.Internal.Operations.IncentiveApi.Configuration;
namespace LCU.API.Internal.Operations.IncentiveApi.Controllers;
[FeatureGate(FeatureFlags.EnableControllers)]
[ApiController]
[Route("api/[controller]")]
public class ActivityImportController : ControllerBase
{
private readonly IQueueCreditCardImportService _queueCreditCardImportService;
private readonly IQueueIndirectVehicleImportService _queueIndirectVehicleImportService;
private readonly IQueueActionCreditCardService _queueActionCreditCardService;
private readonly IQueueActionVehicleService _queueActionVehicleService;
private readonly IQueueAlliedGapMbpService _queueAlliedGapMbpService;
public ActivityImportController(IQueueCreditCardImportService queueCreditCardImportService,
IQueueIndirectVehicleImportService queueIndirectVehicleImportService, IQueueActionCreditCardService queueActionCreditCardService,
IQueueActionVehicleService queueActionVehicleService, IQueueAlliedGapMbpService queueAlliedGapMbpService)
{
_queueCreditCardImportService = queueCreditCardImportService;
_queueIndirectVehicleImportService = queueIndirectVehicleImportService;
_queueActionCreditCardService = queueActionCreditCardService;
_queueActionVehicleService = queueActionVehicleService;
_queueAlliedGapMbpService = queueAlliedGapMbpService;
}
[HttpPost("QueueCreditCardImportRequest")]
[ProducesResponseType(202)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
public async Task<IActionResult> QueueCreditCardImportRequest([FromBody] ImportCreditCardSalesRequest request)
{
try
{
await _queueCreditCardImportService.QueueCreditCardSalesImport(request);
return Accepted();
}
catch (ServiceException exception)
{
return StatusCode(StatusCodes.Status500InternalServerError, exception.Message);
}
catch (Exception exception)
{
Log.Error(exception, "Unexpected Exception");
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
[HttpPost("QueueIndirectVehicleImportRequest")]
[ProducesResponseType(202)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
public async Task<IActionResult> QueueIndirectVehicleImportRequest([FromBody] ImportIndirectVehicleSalesRequest request)
{
try
{
await _queueIndirectVehicleImportService.QueueIndirectVehicleSalesImport(request);
return Accepted();
}
catch (ServiceException exception)
{
return StatusCode(StatusCodes.Status500InternalServerError, exception.Message);
}
catch (Exception exception)
{
Log.Error(exception, "Unexpected Exception");
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
[HttpPost("QueueActionCreditCardRequest")]
[ProducesResponseType(202)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
public async Task<IActionResult> QueueActionCreditCardRequest([FromBody] ActionCreditCardRequest request)
{
try
{
await _queueActionCreditCardService.QueueActionCreditCardProcess(request);
return Accepted();
}
catch (ServiceException exception)
{
return StatusCode(StatusCodes.Status500InternalServerError, exception.Message);
}
catch (Exception exception)
{
Log.Error(exception, "Unexpected Exception");
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
[HttpPost("QueueActionVehicleRequest")]
[ProducesResponseType(202)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
public async Task<IActionResult> QueueActionVehicleRequest([FromBody] ActionVehicleRequest request)
{
try
{
await _queueActionVehicleService.QueueActionVehicleProcess(request);
return Accepted();
}
catch (ServiceException exception)
{
return StatusCode(StatusCodes.Status500InternalServerError, exception.Message);
}
catch (Exception exception)
{
Log.Error(exception, "Unexpected Exception");
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
[HttpPost("QueueAlliedGapMbpRequest")]
[ProducesResponseType(202)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
public async Task<IActionResult> QueueAlliedGapMbpRequest([FromBody] AlliedGapMbpRequest request)
{
try
{
await _queueAlliedGapMbpService.QueueGapMbpProcess(request);
return Accepted();
}
catch (ServiceException exception)
{
return StatusCode(StatusCodes.Status500InternalServerError, exception.Message);
}
catch (Exception exception)
{
Log.Error(exception, "Unexpected Exception");
return StatusCode(StatusCodes.Status500InternalServerError);
}
}
}