Skip to content

Commit

Permalink
Implementação da funcionalidade de buscar um sócio através do documen…
Browse files Browse the repository at this point in the history
…to [Issue #731]
  • Loading branch information
GabrielPintoSouza committed Sep 27, 2024
1 parent c381b68 commit f28f891
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 0 deletions.
27 changes: 27 additions & 0 deletions html/apoio/controller/SocioController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php
require_once '../model/Socio.php';
require_once '../dao/SocioDAO.php';
class SocioController{
public function buscarPorDocumento(){
$documento = filter_input(INPUT_GET, 'documento');

if(!$documento || empty($documento)){
http_response_code(400);
echo json_encode(['Erro' => 'O documento informado não é válido.']);exit;
}

try{
$socioDao = new SocioDAO();
$socio = $socioDao->buscarPorDocumento($documento);

if(!$socio || is_null($socio)){
echo json_encode(['Resultado' => 'Sócio não encontrado']);exit;
}

print_r($socio); //Averiguar a melhor maneira de retornar um sócio para o requisitante
}catch(PDOException $e){
http_response_code(500);
echo json_encode(['Erro' => $e->getMessage()]);exit;
}
}
}
61 changes: 61 additions & 0 deletions html/apoio/dao/SocioDAO.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?php
//requisitar arquivo de conexão
require_once '../dao/ConexaoDAO.php';

//requisitar model
require_once '../model/Socio.php';
class SocioDAO{
private $pdo;

public function __construct()
{
$this->pdo = ConexaoDAO::conectar();
}

public function buscarPorDocumento($documento){
$sqlBuscaPorDocumento =
"SELECT
pessoa.id_pessoa,
pessoa.nome,
pessoa.telefone,
pessoa.cep,
pessoa.estado,
pessoa.cidade,
pessoa.bairro,
pessoa.complemento,
pessoa.numero_endereco,
pessoa.logradouro,
socio.id_pessoa,
socio.email
FROM pessoa, socio
WHERE pessoa.id_pessoa = socio.id_pessoa
AND pessoa.cpf=:documento";

$stmt = $this->pdo->prepare($sqlBuscaPorDocumento);
$stmt->bindParam(':documento', $documento);

$stmt->execute();

if($stmt->rowCount() === 0){
return null;
}

$socioArray = $stmt->fetch(PDO::FETCH_ASSOC);

$socio = new Socio();
$socio
->setNome($socioArray['nome'])
->setTelefone($socioArray['telefone'])
->setEmail($socioArray['email'])
->setEstado($socioArray['estado'])
->setTelefone($socioArray['telefone'])
->setCidade($socioArray['cidade'])
->setBairro($socioArray['bairro'])
->setComplemento($socioArray['complemento'])
->setCep($socioArray['cep'])
->setNumeroEndereco($socioArray['numero_endereco'])
->setLogradouro($socioArray['logradouro']);

return $socio;
}
}
16 changes: 16 additions & 0 deletions html/apoio/view/teste.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Teste sócio por documento</title>
</head>
<body>
<form action="../controller/control.php" method="get">
<input type="hidden" name="nomeClasse" value="SocioController">
<input type="hidden" name="metodo" value="buscarPorDocumento">
<input type="text" name="documento" id="documento" placeholder="Insira aqui o documento do sócio">
<button type="submit">Testar</button>
</form>
</body>
</html>

0 comments on commit f28f891

Please sign in to comment.