From 4d5b8b11a7276fbda623caba7dd39c77b9a87020 Mon Sep 17 00:00:00 2001 From: Rafael Costa Date: Fri, 17 Nov 2023 11:21:27 -0300 Subject: [PATCH 1/2] feat: listar perguntas e correcoes --- api/src/Controllers/PerguntaController.php | 20 -- api/src/Gateways/PerguntaGateway.php | 6 +- sistema/colaboradores/script.js | 2 + sistema/curtidas/script.js | 46 +-- sistema/index.php | 363 +-------------------- sistema/perguntas/index.php | 29 -- sistema/perguntas/script.js | 14 +- sistema/script.js | 83 +++++ 8 files changed, 120 insertions(+), 443 deletions(-) diff --git a/api/src/Controllers/PerguntaController.php b/api/src/Controllers/PerguntaController.php index 573a9dd..a71617e 100644 --- a/api/src/Controllers/PerguntaController.php +++ b/api/src/Controllers/PerguntaController.php @@ -46,16 +46,6 @@ private function processResourceRequest(string $method, string $id): void return; } - if ($usuarioLogado["cargo"] == CargoEnum::MODERADOR && $pergunta["criado_por"] != $usuarioLogado["id"]) { - http_response_code(403); - echo json_encode([ - "status" => "error", - "errors" => ["Não permitido alterar pergunta de outro usuário"] - ]); - - return; - } - $data = (array) json_decode(file_get_contents("php://input"), true); $data["usuarioId"] = $usuarioLogado["id"]; @@ -87,16 +77,6 @@ private function processResourceRequest(string $method, string $id): void return; } - if ($usuarioLogado["cargo"] == CargoEnum::MODERADOR && $pergunta["criado_por"] != $usuarioLogado["id"]) { - http_response_code(403); - echo json_encode([ - "status" => "error", - "errors" => ["Não permitido deletar pergunta de outro usuário"] - ]); - - return; - } - $this->gateway->delete($id); http_response_code(204); diff --git a/api/src/Gateways/PerguntaGateway.php b/api/src/Gateways/PerguntaGateway.php index 4327d13..eee5529 100644 --- a/api/src/Gateways/PerguntaGateway.php +++ b/api/src/Gateways/PerguntaGateway.php @@ -22,7 +22,7 @@ public function getAll(array $ordenacao): array ue.foto_uri AS foto_usuario_editado FROM pergunta p LEFT JOIN usuario u ON p.criado_por = u.id - LEFT JOIN pergunta_editada_por pe ON u.id = pe.usuario_id + LEFT JOIN pergunta_editada_por pe ON p.id = pe.pergunta_id LEFT JOIN usuario ue ON pe.usuario_id = ue.id"; if (isset($ordenacao["MaisAlta"]) && $ordenacao["MaisAlta"]) { @@ -37,7 +37,7 @@ public function getAll(array $ordenacao): array ue.foto_uri AS foto_usuario_editado FROM pergunta p LEFT JOIN usuario u ON p.criado_por = u.id - LEFT JOIN pergunta_editada_por pe ON u.id = pe.usuario_id + LEFT JOIN pergunta_editada_por pe ON p.id = pe.pergunta_id LEFT JOIN usuario ue ON pe.usuario_id = ue.id ORDER BY CASE @@ -59,7 +59,7 @@ public function getAll(array $ordenacao): array ue.foto_uri AS foto_usuario_editado FROM pergunta p LEFT JOIN usuario u ON p.criado_por = u.id - LEFT JOIN pergunta_editada_por pe ON u.id = pe.usuario_id + LEFT JOIN pergunta_editada_por pe ON p.id = pe.pergunta_id LEFT JOIN usuario ue ON pe.usuario_id = ue.id ORDER BY curtidas DESC"; } diff --git a/sistema/colaboradores/script.js b/sistema/colaboradores/script.js index 8680763..d6b023b 100644 --- a/sistema/colaboradores/script.js +++ b/sistema/colaboradores/script.js @@ -316,6 +316,7 @@ const execute = async () => { showCancelButton: true, confirmButtonText: 'Sim, confirmar!', cancelButtonText: 'Não', + allowEnterKey: false, icon: 'question', }).then(async (result) => { if (result.isConfirmed) { @@ -325,6 +326,7 @@ const execute = async () => { showCancelButton: true, confirmButtonText: 'Sim, irei anotar!', cancelButtonText: 'Não', + allowEnterKey: false, icon: 'info', }).then(async (result) => { if (result.isConfirmed) { diff --git a/sistema/curtidas/script.js b/sistema/curtidas/script.js index 031c521..2d88445 100644 --- a/sistema/curtidas/script.js +++ b/sistema/curtidas/script.js @@ -60,10 +60,12 @@ const execute = async () => {
- +
- ${pergunta.nome_usuario ?? 'Sem usuário'} + ${pergunta.nome_usuario ?? 'N/A'}
@@ -76,19 +78,12 @@ const execute = async () => {
${pergunta.curtidas}
- ${ - user.cargo === 'Administrador' - ? `
+
- -
` - : pergunta.criado_por === user.id - ? `
- - -
` - : '' - } + +
`, @@ -144,10 +139,12 @@ const execute = async () => {
- +
- ${pergunta.nome_usuario ?? 'Sem usuário'} + ${pergunta.nome_usuario ?? 'N/A'}
@@ -160,19 +157,12 @@ const execute = async () => {
${pergunta.curtidas}
- ${ - user.cargo === 'Administrador' - ? `
+
- -
` - : pergunta.criado_por === user.id - ? `
- - -
` - : '' - } + +
`, diff --git a/sistema/index.php b/sistema/index.php index ee676cd..f47c47c 100644 --- a/sistema/index.php +++ b/sistema/index.php @@ -13,6 +13,9 @@ + + + Sistema FAQ @@ -106,365 +109,7 @@ - - - -
- 1 -
- - -
-
- -
-
- Júnior - Gonçalves -
-
- - -
- A Fatec oferece algum tipo de suporte para alunos com dificuldades de - aprendizagem? -
- - -
- -
- - -
- Alta -
- - - -
08/11/2023
- - -
- - -
- - - - - - -
- 2 -
- - -
-
- -
-
- Thiago - Alves -
-
- - -
- Quais são as possibilidades de carreira para os profissionais formados na Fatec? -
- - -
- -
- - -
- Normal -
- - - -
08/11/2023
- - -
- - -
- - - - - - -
- 3 -
- - -
-
- -
-
- Marcia - Reggiolli -
-
- - -
Quais são as formas de ingresso na Fatec?
- - -
- -
- - -
- Normal -
- - - -
08/11/2023
- - -
- - -
- - - - - - -
- 4 -
- - -
-
- -
-
- Thiago - Alves -
-
- - -
- A Fatec oferece algum tipo de suporte para alunos com dificuldades de - aprendizagem? -
- - -
- -
- - -
- Alta -
- - - -
08/11/2023
- - -
- - -
- - - - - - -
- 5 -
- - -
-
- -
-
- Júnior - Gonçalves -
-
- - -
- A Fatec oferece algum tipo de suporte para alunos com dificuldades de - aprendizagem? -
- - -
- -
- - -
- Alta -
- - - -
08/11/2023
- - -
- - -
- - - - - - -
- 6 -
- - -
-
- -
-
- Thiago - Alves -
-
- - -
- Quais são as possibilidades de carreira para os profissionais formados na Fatec? -
- - -
- -
- - -
- Normal -
- - - -
08/11/2023
- - -
- - -
- - - - - - -
- 7 -
- - -
-
- -
-
- Marcia - Reggiolli -
-
- - -
Quais são as formas de ingresso na Fatec?
- - -
- -
- - -
- Normal -
- - - -
08/11/2023
- - -
- - -
- - - - - - -
- 8 -
- - -
-
- -
-
- Thiago - Alves -
-
- - -
- A Fatec oferece algum tipo de suporte para alunos com dificuldades de - aprendizagem? -
- - -
- -
- - -
- Alta -
- - - -
08/11/2023
- - -
- - -
- - +
diff --git a/sistema/perguntas/index.php b/sistema/perguntas/index.php index fcdb6e3..cd8f82e 100644 --- a/sistema/perguntas/index.php +++ b/sistema/perguntas/index.php @@ -54,35 +54,6 @@
-
-
-
- -
-
-
25
-
Total de perguntas
-
-
-
-
- -
-
-
4
-
Total de prioridades
-
-
-
-
- -
-
-
84
-
Total de curtidas
-
-
-
diff --git a/sistema/perguntas/script.js b/sistema/perguntas/script.js index cbcaa06..4920e58 100644 --- a/sistema/perguntas/script.js +++ b/sistema/perguntas/script.js @@ -157,7 +157,7 @@ const execute = async () => { } setTimeout(() => { - window.location = `${serverUrl}/sistema/perguntas`; + window.location.reload(); }, 1000); } catch (error) { toast('Houve um problema ao atualizar a sugestão', true); @@ -191,6 +191,10 @@ const execute = async () => { }); toast('Pergunta criada com sucesso'); + + setTimeout(() => { + window.location.reload(); + }, 1000); } else { botaoEnviar.disabled = false; botaoEnviar.textContent = 'Adicionar'; @@ -290,7 +294,7 @@ const execute = async () => { suasPerguntasTbody.innerHTML += perguntasDoUsuario .map((pergunta) => { - const data = new Date(pergunta.criado_em); + const dataEditado = new Date(pergunta.atualizado_em); return ` @@ -304,7 +308,9 @@ const execute = async () => {
- +
@@ -313,7 +319,7 @@ const execute = async () => {
-
${data.toLocaleDateString()}
+
${dataEditado.toLocaleDateString()}
diff --git a/sistema/script.js b/sistema/script.js index cd66798..cfcfb96 100644 --- a/sistema/script.js +++ b/sistema/script.js @@ -3,6 +3,8 @@ import { deslogar } from '../scripts/auth/deslogar.js'; import { serverUrl } from '../scripts/constants/serverUrl.js'; import { isLoggedIn } from '../scripts/middlewares/isLoggedIn.js'; +import { deletarPergunta } from '../scripts/perguntas/deletarPergunta.js'; +import { listarPerguntas } from '../scripts/perguntas/listarPerguntas.js'; import { getLoggedUseInfo } from '../scripts/user/getLoggedUserInfo.js'; import { fillHeaderUserData } from '../scripts/utils/fillHeaderUserData.js'; @@ -30,6 +32,87 @@ const execute = async () => { const user = await getLoggedUseInfo(); fillHeaderUserData(user); + + const perguntasTbody = document.querySelector('.perguntas-tbody'); + + const perguntas = await listarPerguntas(); + + perguntasTbody.innerHTML += perguntas + .map((pergunta) => { + const dataEditado = new Date(pergunta.atualizado_em); + + return ` + + +
+ ${pergunta.id} +
+ + +
+
+ +
+
${pergunta.nome_usuario ?? 'N/A'}
+
+ + +
${pergunta.pergunta}
+ + +
+ +
+ + +
+ ${pergunta.prioridade} +
+ + + +
${dataEditado.toLocaleDateString()}
+ + +
+ + +
+ + `; + }) + .join(''); + + const botaoDeletar = document.querySelectorAll('.deletar-pergunta'); + + botaoDeletar.forEach((botao) => { + botao.addEventListener('click', () => { + const id = botao.dataset.id; + + Swal.fire({ + title: 'Tem certezar que quer deletar a pergunta?', + showCancelButton: true, + confirmButtonText: 'Sim, confirmar!', + cancelButtonText: 'Não', + icon: 'question', + }).then(async (result) => { + if (result.isConfirmed) { + try { + await deletarPergunta(id); + window.location.reload(); + } catch (error) { + toast(error.message, true); + } + } + }); + }); + }); }; loggedIn && (await execute()); From 2971973361d9c0e8fe7e7e2e6b42a07c4d9e486d Mon Sep 17 00:00:00 2001 From: rrafaelc Date: Fri, 17 Nov 2023 14:22:17 +0000 Subject: [PATCH 2/2] Prettified Code! --- sistema/curtidas/script.js | 8 ++++---- sistema/perguntas/script.js | 4 ++-- sistema/script.js | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sistema/curtidas/script.js b/sistema/curtidas/script.js index 2d88445..fe201ef 100644 --- a/sistema/curtidas/script.js +++ b/sistema/curtidas/script.js @@ -61,8 +61,8 @@ const execute = async () => {
+ pergunta.foto_usuario ?? '../../img/userFallback.jpg' + }" />
${pergunta.nome_usuario ?? 'N/A'} @@ -140,8 +140,8 @@ const execute = async () => {
+ pergunta.foto_usuario ?? '../../img/userFallback.jpg' + }" />
${pergunta.nome_usuario ?? 'N/A'} diff --git a/sistema/perguntas/script.js b/sistema/perguntas/script.js index 4920e58..adba9e1 100644 --- a/sistema/perguntas/script.js +++ b/sistema/perguntas/script.js @@ -309,8 +309,8 @@ const execute = async () => {
+ pergunta.foto_usuario_editado ?? '../../img/userFallback.jpg' + }" />
diff --git a/sistema/script.js b/sistema/script.js index cfcfb96..40b3d6d 100644 --- a/sistema/script.js +++ b/sistema/script.js @@ -52,8 +52,8 @@ const execute = async () => {
+ pergunta.foto_usuario ?? '../img/userFallback.jpg' + }" />
${pergunta.nome_usuario ?? 'N/A'}
@@ -64,8 +64,8 @@ const execute = async () => {
+ pergunta.foto_usuario_editado ?? '../img/userFallback.jpg' + }" />