-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlistar_eventos.php
More file actions
96 lines (82 loc) · 2.8 KB
/
listar_eventos.php
File metadata and controls
96 lines (82 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
session_start(); // Inicia a sessão
// Configurações
header("Content-Type: application/json");
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET");
header("Access-Control-Allow-Headers: Content-Type");
// Incluir funções de cliente e admin
require_once dirname(__FILE__) . "/funcoes_cliente.php";
require_once dirname(__FILE__) . "/auth_admin.php";
// Arquivo JSON para armazenar informações dos eventos
$eventosJsonFile = "eventos_cadastrados.json";
// Função para criar resposta de erro
function responderErro($mensagem, $codigo = 400) {
http_response_code($codigo);
echo json_encode(["sucesso" => false, "mensagem" => $mensagem]);
exit;
}
// Verificar se a requisição é GET
if ($_SERVER["REQUEST_METHOD"] !== "GET") {
responderErro("Método não permitido. Use GET.", 405);
}
// Verificar se é super admin
if (verificarSuperAdmin()) {
// Se for super admin, não precisa de token de cliente, lista todos os eventos
if (!file_exists($eventosJsonFile)) {
echo json_encode([
"sucesso" => true,
"eventos" => []
]);
exit;
}
$eventosJson = json_decode(file_get_contents($eventosJsonFile), true);
// Remover informações sensíveis antes de enviar
foreach ($eventosJson as &$evento) {
unset($evento["diretorio"]);
}
echo json_encode([
"sucesso" => true,
"eventos" => $eventosJson
]);
exit;
} else {
// Se não for super admin, exige token de cliente
$token = $_GET["token"] ?? ";
if (empty($token)) {
responderErro("Token de acesso não fornecido.", 401);
}
// Obter dados do cliente pelo token
$cliente = obterClientePorToken($token);
if (!$cliente) {
responderErro("Token de acesso inválido ou expirado.", 401);
}
// Verificar se o arquivo JSON existe
if (!file_exists($eventosJsonFile)) {
// Se não existir, retornar um array vazio
echo json_encode([
"sucesso" => true,
"eventos" => []
]);
exit;
}
// Carregar eventos do JSON
$eventosJson = json_decode(file_get_contents($eventosJsonFile), true);
// Filtrar apenas eventos do cliente específico
$eventosDoCliente = [];
foreach ($eventosJson as $evento) {
if (isset($evento["email"]) && $evento["email"] === $cliente["email"]) {
// Remover informações sensíveis
unset($evento["diretorio"]);
$eventosDoCliente[] = $evento;
}
}
// Responder com a lista de eventos do cliente
echo json_encode([
"sucesso" => true,
"eventos" => $eventosDoCliente
]);
}
?>