Skip to content

Commit

Permalink
Transferência da página gateway_pagamento.php para a nova estrutura d…
Browse files Browse the repository at this point in the history
…e diretórios do módulo de contribuição [Issue #727]
  • Loading branch information
GabrielPintoSouza committed Sep 24, 2024
1 parent 0af2c1a commit 0e95dff
Show file tree
Hide file tree
Showing 11 changed files with 905 additions and 0 deletions.
115 changes: 115 additions & 0 deletions html/apoio/controller/GatewayPagamentoController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
<?php

require_once '../model/GatewayPagamento.php';
require_once '../dao/GatewayPagamentoDAO.php';

class GatewayPagamentoController
{
/**Realiza os procedimentos necessários para inserir um Gateway de pagamento na aplicação */
public function cadastrar()
{
$nome = $_POST['nome'];
$endpoint = $_POST['endpoint'];
$token = $_POST['token'];

try {
$gatewayPagamento = new GatewayPagamento($nome, $endpoint, $token);
$gatewayPagamento->cadastrar();
header("Location: ../view/gateway_pagamento.php?msg=cadastrar-sucesso");
} catch (Exception $e) {
header("Location: ../view/gateway_pagamento.php?msg=cadastrar-falha");
}
}

/**
* Realiza os procedimentos necessários para buscar os gateways de pagamento da aplicação
*/
public function buscaTodos()
{
try {
$gatewayPagamentoDao = new GatewayPagamentoDAO();
$gateways = $gatewayPagamentoDao->buscaTodos();
return $gateways;
} catch (PDOException $e) {
echo 'Erro na busca de gateways de pagamento: ' . $e->getMessage();
}
}

/**
* Realiza os procedimentos necessários para remover um gateway de pagamento do sistema.
*/
public function excluirPorId()
{
$gatewayId = trim($_POST['gateway-id']);

if (!$gatewayId || empty($gatewayId) || $gatewayId < 1) {
//parar operação
header("Location: ../view/gateway_pagamento.php?msg=excluir-falha#mensagem-tabela");
exit();
}

try {
$gatewayPagamentoDao = new GatewayPagamentoDAO();
$gatewayPagamentoDao->excluirPorId($gatewayId);
header("Location: ../view/gateway_pagamento.php?msg=excluir-sucesso#mensagem-tabela");
} catch (Exception $e) {
header("Location: ../view/gateway_pagamento.php?msg=excluir-falha#mensagem-tabela");
}
//echo 'O id do gateway que será excluído é: '.$gatewayId;
}

/**
* Realiza os procedimentos necessários para alterar as informações de um gateway de pagamento do sistema
*/
public function editarPorId()
{
$gatewayId = $_POST['id'];
$gatewayNome = $_POST['nome'];
$gatewayEndepoint = $_POST['endpoint'];
$gatewayToken = $_POST['token'];

try {
$gatewayPagamento = new GatewayPagamento($gatewayNome, $gatewayEndepoint, $gatewayToken);
$gatewayPagamento->setId($gatewayId);
$gatewayPagamento->editar();
header("Location: ../view/gateway_pagamento.php?msg=editar-sucesso#mensagem-tabela");
} catch (Exception $e) {
header("Location: ../view/gateway_pagamento.php?msg=editar-falha#mensagem-tabela");
}
//echo 'Editando gateway de id: '.$gatewayId;
}

/**
* Realiza os procedimentos necessários para ativar/desativar um gateway de pagamento no sistema
*/
public function alterarStatus()
{
$gatewayId = $_POST['id'];
$status = trim($_POST['status']);

if (!$gatewayId || empty($gatewayId)) {
http_response_code(400);
echo json_encode(['Erro' => 'O id deve ser maior ou igual a 1.']);exit;
}

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

if ($status === 'true') {
$status = 1;
} elseif ($status === 'false') {
$status = 0;
}

try {
$gatewayPagamentoDao = new GatewayPagamentoDAO();
$gatewayPagamentoDao->alterarStatusPorId($status, $gatewayId);
echo json_encode(['Sucesso']);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['Erro'=>'Ocorreu um problema no servidor.']);exit;
}
}
}
8 changes: 8 additions & 0 deletions html/apoio/controller/TesteController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php
require_once('../dao/ConexaoDAO.php');
class TesteController{
public function teste(){
echo 'Hello World';
print_r(ConexaoDAO::conectar());
}
}
33 changes: 33 additions & 0 deletions html/apoio/controller/control.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php
//Sanitizes the request parameters
$controller = trim(htmlspecialchars($_REQUEST['nomeClasse']));
$function = trim(htmlspecialchars($_REQUEST['metodo']));

try {
if (!$controller || !$function) {
throw new InvalidArgumentException('Operação Inválida, controladora e função não definidas');
}

$controllerPath = $controller . '.php'; //Prepare the require path

if (!file_exists($controllerPath)) {
throw new InvalidArgumentException('Operação Inválida, arquivo da controladora inexistente');
}

require_once($controllerPath);

if (!class_exists($controller)) {
throw new InvalidArgumentException('Operação Inválida, controladora inexistente');
}

$controllerObject = new $controller(); //Instance the controller type object

if (!method_exists($controllerObject, $function)) {
throw new InvalidArgumentException('Operação Inválida, método inexistente');
}

$controllerObject->$function(); //Calls the controller function
} catch (InvalidArgumentException $e) {
http_response_code(400);
exit("Erro: {$e->getMessage()}");
}
9 changes: 9 additions & 0 deletions html/apoio/dao/ConexaoDAO.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php
require_once('../../../config.php');
class ConexaoDAO{
public static function conectar(){
$pdo = new PDO('mysql:host='.DB_HOST.'; dbname='.DB_NAME.'; charset=utf8',DB_USER,DB_PASSWORD);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
}
}
108 changes: 108 additions & 0 deletions html/apoio/dao/GatewayPagamentoDAO.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<?php
//requisitar arquivo de conexão

require_once '../dao/ConexaoDAO.php';

class GatewayPagamentoDAO{

private $pdo;

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

/**
* Inseri um gateway de pagamento no banco de dados da aplicação
*/
public function cadastrar($nome, $endpoint, $token, $status){
/*Lógica da aplicação */
//definir consulta SQL
$sqlCadastrar = "INSERT INTO contribuicao_gatewayPagamento (plataforma, endpoint, token, status)
VALUES (:plataforma, :endpoint, :token, :status)";
//utilizar prepared statements
$stmt = $this->pdo->prepare($sqlCadastrar);
$stmt->bindParam(':plataforma', $nome);
$stmt->bindParam(':endpoint', $endpoint);
$stmt->bindParam(':token', $token);
$stmt->bindParam(':status', $status);
//executar
$stmt->execute();
}

/**
* Busca os gateways de pagamento registrados no banco de dados da aplicação
*/
public function buscaTodos(){
//definir consulta sql
$sqlBuscaTodos = "SELECT * from contribuicao_gatewayPagamento";
//executar
$resultado = $this->pdo->query($sqlBuscaTodos)->fetchAll(PDO::FETCH_ASSOC);
//retornar resultado
return $resultado;
}

/**
* Remover o gateway de pagamento que possuí id equivalente no banco de dados da aplicação
*/
public function excluirPorId($id){
//definir consulta sql
$sqlExcluirPorId = "DELETE FROM contribuicao_gatewayPagamento WHERE id=:id";
//utilizar prepared statements
$stmt = $this->pdo->prepare($sqlExcluirPorId);
$stmt->bindParam(':id', $id);
//executar
$stmt->execute();

//verificar se algum elemento foi de fato excluído
$gatewayExcluido = $stmt->rowCount();

if($gatewayExcluido < 1){
throw new Exception();
}
}

/**
* Modifica os campos da tabela contribuicao_gatewaypagamento relacionados ao id informado
*/
public function editarPorId($id, $nome, $endpoint, $token){
//definir consulta sql
$sqlEditarPorId = "UPDATE contribuicao_gatewayPagamento SET plataforma =:nome, endpoint =:endpoint, token =:token WHERE id=:id";
//utilizar prepared statements
$stmt = $this->pdo->prepare($sqlEditarPorId);
$stmt->bindParam(':nome', $nome);
$stmt->bindParam(':endpoint', $endpoint);
$stmt->bindParam(':token', $token);
$stmt->bindParam(':id', $id);
//executar
$stmt->execute();

//verificar se algum elemento foi de fato alterado
$gatewayExcluido = $stmt->rowCount();

if($gatewayExcluido < 1){
throw new Exception();
}
}

/**
* Modifica o campo status da tabela contribuica_gatewayPagamento de acordo com o id fornecido
*/
public function alterarStatusPorId($status, $gatewayId){
//definir consulta sql
$sqlAlterarStatusPorId = "UPDATE contribuicao_gatewayPagamento SET status =:status WHERE id=:gatewayId";
//utilizar prepared statements
$stmt = $this->pdo->prepare($sqlAlterarStatusPorId);
$stmt->bindParam(':status', $status);
$stmt->bindParam(':gatewayId', $gatewayId);
//executar
$stmt->execute();

//verificar se algum elemento foi de fato alterado
$gatewayAlterado = $stmt->rowCount();

if($gatewayAlterado < 1){
throw new Exception();
}
}
}
Loading

0 comments on commit 0e95dff

Please sign in to comment.