From 146495c07b06bbd161c17e62dccb30b6220448e1 Mon Sep 17 00:00:00 2001 From: Jose Henrique Date: Sat, 31 May 2025 14:43:37 -0300 Subject: [PATCH] adding more stuff --- OpenCand.API/Controllers/CandidatoController.cs | 10 ++++++++++ OpenCand.API/Model/ListSearchResult.cs | 5 +++++ OpenCand.API/OpenCand.API.csproj | 6 ++++++ OpenCand.API/Repository/CandidatoRepository.cs | 11 +++++++++++ OpenCand.API/Services/OpenCandService.cs | 14 ++++++++++++++ 5 files changed, 46 insertions(+) diff --git a/OpenCand.API/Controllers/CandidatoController.cs b/OpenCand.API/Controllers/CandidatoController.cs index ed07952..53bb3fe 100644 --- a/OpenCand.API/Controllers/CandidatoController.cs +++ b/OpenCand.API/Controllers/CandidatoController.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Mvc; +using Microsoft.VisualBasic; using OpenCand.API.Model; using OpenCand.API.Services; using OpenCand.Core.Models; @@ -37,5 +38,14 @@ namespace OpenCand.API.Controllers { return await openCandService.GetCandidatoRedeSocialById(id); } + + [HttpGet("{id}/reveal-cpf")] + public async Task GetCandidatoCpfById([FromRoute] Guid id) + { + var rnd = new Random(); + var randomWait = rnd.Next(1000, 3000); + await Task.Delay(randomWait); + return await openCandService.GetCandidatoCpfById(id); + } } } diff --git a/OpenCand.API/Model/ListSearchResult.cs b/OpenCand.API/Model/ListSearchResult.cs index f680a9d..6e27536 100644 --- a/OpenCand.API/Model/ListSearchResult.cs +++ b/OpenCand.API/Model/ListSearchResult.cs @@ -16,4 +16,9 @@ namespace OpenCand.API.Model { public List RedesSociais { get; set; } } + + public class CpfRevealResult + { + public string Cpf { get; set; } + } } diff --git a/OpenCand.API/OpenCand.API.csproj b/OpenCand.API/OpenCand.API.csproj index 82db15b..9069e74 100644 --- a/OpenCand.API/OpenCand.API.csproj +++ b/OpenCand.API/OpenCand.API.csproj @@ -25,4 +25,10 @@ + + + + + + diff --git a/OpenCand.API/Repository/CandidatoRepository.cs b/OpenCand.API/Repository/CandidatoRepository.cs index 1f5efea..7019e30 100644 --- a/OpenCand.API/Repository/CandidatoRepository.cs +++ b/OpenCand.API/Repository/CandidatoRepository.cs @@ -36,6 +36,17 @@ namespace OpenCand.Repository } } + public async Task GetCandidatoCpfAsync(Guid idcandidato) + { + using (var connection = new NpgsqlConnection(ConnectionString)) + { + return await connection.QueryFirstOrDefaultAsync(@" + SELECT cpf FROM candidato + WHERE idcandidato = @idcandidato;", + new { idcandidato }); + } + } + public async Task?> GetCandidatoMappingById(Guid idcandidato) { using (var connection = new NpgsqlConnection(ConnectionString)) diff --git a/OpenCand.API/Services/OpenCandService.cs b/OpenCand.API/Services/OpenCandService.cs index cb86fa7..2e61a9d 100644 --- a/OpenCand.API/Services/OpenCandService.cs +++ b/OpenCand.API/Services/OpenCandService.cs @@ -94,5 +94,19 @@ namespace OpenCand.API.Services RedesSociais = result.OrderByDescending(r => r.Ano).ToList() }; } + + public async Task GetCandidatoCpfById(Guid idcandidato) + { + var result = await candidatoRepository.GetCandidatoCpfAsync(idcandidato); + if (result == null) + { + return new CpfRevealResult(); + } + + return new CpfRevealResult() + { + Cpf = result + }; + } } }