add random candidato
All checks were successful
API and ETL Build / build_etl (push) Successful in 3s
API and ETL Build / build_api (push) Successful in 10s

This commit is contained in:
Jose Henrique 2025-06-10 20:40:03 -03:00
parent 23b1f0f14e
commit 226d819909
3 changed files with 25 additions and 0 deletions

View File

@ -30,6 +30,15 @@ namespace OpenCand.API.Controllers
return await openCandService.SearchCandidatosAsync(q);
}
[HttpGet("random")]
public async Task<object> GetRandomCandidatoId()
{
return new
{
idCandidato = await openCandService.GetRandomCandidato()
};
}
[HttpGet("{id}")]
public async Task<Candidato> GetCandidatoById([FromRoute] Guid id)
{

View File

@ -101,5 +101,16 @@ namespace OpenCand.Repository
return (await connection.QueryAsync<CandidatoExt>(query, new { idcandidato })).AsList();
}
}
public async Task<Guid?> GetRandomCandidatoIdAsync()
{
using var connection = new NpgsqlConnection(ConnectionString);
return await connection.QueryFirstOrDefaultAsync<Guid?>(@"
SELECT idcandidato
FROM candidato
ORDER BY RANDOM()
LIMIT 1;
");
}
}
}

View File

@ -55,6 +55,11 @@ namespace OpenCand.API.Services
};
}
public async Task<Guid?> GetRandomCandidato()
{
return await candidatoRepository.GetRandomCandidatoIdAsync();
}
public async Task<Candidato> GetCandidatoAsync(Guid idcandidato)
{
var result = await candidatoRepository.GetCandidatoAsync(idcandidato);