148 lines
5.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|