Skip to content

Commit

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

require_once '../model/MeioPagamento.php';
require_once '../dao/MeioPagamentoDAO.php';

class MeioPagamentoController{
public function cadastrar(){
//Implementar restante da lógica do código...
$descricao = $_POST['nome'];
$gatewayId = $_POST['meio-pagamento-plataforma'];
try{
$meioPagamento = new MeioPagamento($descricao, $gatewayId);
$meioPagamento->cadastrar();
header("Location: ../view/meio_pagamento.php?msg=cadastrar-sucesso");
}catch(Exception $e){
header("Location: ../view/meio_pagamento.php?msg=cadastrar-falha");
}
}

/**
* Busca os meios de pagamentos registrados no banco de dados da aplicação
*/
public function buscaTodos(){
try{
$meioPagamentoDao = new MeioPagamentoDAO();
$meiosPagamento = $meioPagamentoDao->buscaTodos();
return $meiosPagamento;
}catch(PDOException $e){
echo 'Erro na busca de meios de pagamento: '.$e->getMessage();
}
}

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

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

try{
$meioPagamentoDao = new MeioPagamentoDAO();
$meioPagamentoDao->excluirPorId($meioPagamentoId);
header("Location: ../view/meio_pagamento.php?msg=excluir-sucesso#mensagem-tabela");
}catch(Exception $e){
header("Location: ../view/meio_pagamento.php?msg=excluir-falha#mensagem-tabela");
}
}

/**
* Realiza os procedimentos necessários para alterar as informações de um meio de pagamento do sistema
*/
public function editarPorId(){
$descricao = $_POST['nome'];
$gatewayId = $_POST['plataforma'];
$meioPagamentoId = $_POST['id'];

try{
$meioPagamento = new MeioPagamento($descricao, $gatewayId);
$meioPagamento->setId($meioPagamentoId);
$meioPagamento->editar();
header("Location: ../view/meio_pagamento.php?msg=editar-sucesso#mensagem-tabela");
}catch(Exception $e){
header("Location: ../view/meio_pagamento.php?msg=editar-falha#mensagem-tabela");
}
}

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

if (!$meioPagamentoId || empty($meioPagamentoId)) {
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 {
$meioPagamentoDao = new MeioPagamentoDAO();
$meioPagamentoDao->alterarStatusPorId($status, $meioPagamentoId);
echo json_encode(['Sucesso']);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['Erro'=>'Ocorreu um problema no servidor.']);exit;
}
}
}
8 changes: 0 additions & 8 deletions html/apoio/controller/TesteController.php

This file was deleted.

114 changes: 114 additions & 0 deletions html/apoio/dao/MeioPagamentoDAO.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
<?php

//requisitar arquivo de conexão

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

class MeioPagamentoDAO
{
private $pdo;

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

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

/**
* Retorna todos os meios de pagamentos registrados no banco de dados da aplicação
*/
public function buscaTodos()
{
//definir consulta sql
$sqlBuscaTodos = "SELECT cmp.id, cmp.meio, cmp.id_plataforma, cmp.status, cgp.plataforma, cgp.endpoint
FROM contribuicao_meioPagamento cmp
JOIN contribuicao_gatewayPagamento cgp ON (cgp.id=cmp.id_plataforma)";
//executar
$resultado = $this->pdo->query($sqlBuscaTodos)->fetchAll(PDO::FETCH_ASSOC);
//retornar resultado
return $resultado;
}

/**
* Remover o meio de pagamento que possuí id equivalente no banco de dados da aplicação
*/
public function excluirPorId($id)
{
//definir consulta sql
$sqlExcluirPorId = "DELETE FROM contribuicao_meioPagamento 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
$meioPagamentoExcluido = $stmt->rowCount();

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

/**
* Edita o meio de pagamento que possuí id equivalente no banco de dados da aplicação
*/
public function editarPorId($id, $descricao, $gatewayId)
{
//definir consulta sql
$sqlEditarPorId = "UPDATE contribuicao_meioPagamento SET meio =:descricao, id_plataforma =:gatewayId WHERE id=:id";
//utilizar prepared statements
$stmt = $this->pdo->prepare($sqlEditarPorId);
$stmt->bindParam(':descricao', $descricao);
$stmt->bindParam(':gatewayId', $gatewayId);
$stmt->bindParam(':id', $id);
//executar
$stmt->execute();

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

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

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

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

if ($meioAlterado < 1) {
throw new Exception();
}
}
}
138 changes: 138 additions & 0 deletions html/apoio/model/MeioPagamento.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
<?php
class MeioPagamento{
private $id;
private $descricao;
private $gatewayId;
private $status;

public function __construct($descricao, $gatewayId, $status=null)
{
$this->setDescricao($descricao)->setGatewayId($gatewayId);

if(!$status){
$this->setStatus(0);
}else{
$this->setStatus($status);
}
}

/**
* Pega os atributos $descricao e $gatewayId e realiza os procedimentos necessários para
* inserir um novo meio de pagamento no sistema da aplicação.
*/
public function cadastrar(){
require_once '../dao/MeioPagamentoDAO.php';
$meioPagamentoDao = new MeioPagamentoDAO();
$meioPagamentoDao->cadastrar($this->descricao, $this->gatewayId, $this->status);
}

/**
* Altera os dados do sistema pelos novos fornecidos através dos atributos $descricao e $gatewayId
*/
public function editar(){
require_once '../dao/MeioPagamentoDAO.php';
$meioPagamentoDao = new MeioPagamentoDAO();
$meioPagamentoDao->editarPorId($this->id, $this->descricao, $this->gatewayId);
}

/**
* Get the value of descricao
*/
public function getDescricao()
{
return $this->descricao;
}

/**
* Set the value of descricao
*
* @return self
*/
public function setDescricao($descricao)
{
$descricaoLimpa = trim($descricao);
if(!$descricaoLimpa || empty($descricaoLimpa)){
throw new InvalidArgumentException();
}

$this->descricao = $descricao;

return $this;
}

/**
* Get the value of gatewayId
*/
public function getGatewayId()
{
return $this->gatewayId;
}

/**
* Set the value of gatewayId
*
* @return self
*/
public function setGatewayId($gatewayId)
{
if(!$gatewayId || $gatewayId < 1){
throw new InvalidArgumentException();
}

$this->gatewayId = $gatewayId;

return $this;
}

/**
* Get the value of id
*/
public function getId()
{
return $this->id;
}

/**
* Set the value of id
*
* @return self
*/
public function setId($id)
{
$idLimpo = trim($id);

if(!$idLimpo || $idLimpo <1){
throw new InvalidArgumentException();
}
$this->id = $id;

return $this;
}

/**
* Get the value of status
*/
public function getStatus()
{
return $this->status;
}

/**
* Set the value of status
*
* @return self
*/
public function setStatus($status)
{
$statusLimpo = trim($status);
//echo $statusLimpo;

if((!$statusLimpo || empty($statusLimpo)) && $statusLimpo != 0){
throw new InvalidArgumentException('O status de um meio de pagamento não pode ser vazio.');
}

$this->status = $status;

return $this;
}
}
Loading

0 comments on commit 7e23a80

Please sign in to comment.