using Diligent.WebAPI.Contracts.DTOs.Applicant; namespace Diligent.WebAPI.Host.Controllers.V1 { [ApiVersion("1.0")] [Route("v{version:apiVersion}/applicants")] [ApiController] public class ApplicantsController : ControllerBase { private readonly IApplicantService _applicantService; public ApplicantsController(IApplicantService applicantService) { _applicantService = applicantService; } [HttpGet] public async Task GetFilteredApplicants([FromQuery] ApplicantFilterDto applicantFilterDto) => Ok(await _applicantService.GetFilteredApplicants(applicantFilterDto)); [Authorize] [HttpGet("{id}")] public async Task GetById(int id) => Ok(await _applicantService.GetById(id)); [Authorize] [HttpGet("adsApplicants")] public async Task GetAllAdsApplicants([FromQuery]ApplicantFilterDto applicantFilterDto) => Ok(await _applicantService.GetAllAdsApplicants(applicantFilterDto)); [Authorize] [HttpDelete] public async Task DeleteApplicant(int id) { await _applicantService.DeleteApplicant(id); return Ok(); } [HttpGet("processes/{id}")] public async Task GetProcesses(int id) { return Ok(await _applicantService.GetApplicantWithSelectionProcessesById(id)); } [HttpGet("options")] public async Task GetOptions() { return Ok(await _applicantService.GetOptions()); } [HttpPost("selection-init")] public async Task InitSelection(ApplicantProcessRequestDTO model) { await _applicantService.InitializeProcess(model); return Ok(); } } }