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; } [Authorize] [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(); } [Authorize] [HttpGet("processes/{id}")] public async Task GetProcesses(int id) { return Ok(await _applicantService.GetApplicantWithSelectionProcessesById(id)); } [Authorize] [HttpGet("options")] public async Task GetOptions() { return Ok(await _applicantService.GetOptions()); } [Authorize] [HttpPost("selection-init")] public async Task InitSelection(ApplicantProcessRequestDTO model) { await _applicantService.InitializeProcess(model); return Ok(); } [Authorize] [HttpPost("apply-for-ad")] public async Task ApplyForAd([FromForm]ApplyForAdRequestDto request) { await _applicantService.ApplyForAd(request); return Ok(); } [HttpGet("get-CV")] public async Task GetCV(string fileName) { var res = await _applicantService.GetCV(fileName); return Ok(res); } } }