Skip to content

Commit

Permalink
Validação das Resenhas completa e alteração de foto também(necessário…
Browse files Browse the repository at this point in the history
… correção de bugs).
  • Loading branch information
Th0mzzz committed Sep 2, 2024
1 parent 1ebbe33 commit 25f0939
Show file tree
Hide file tree
Showing 17 changed files with 47 additions and 15 deletions.
2 changes: 1 addition & 1 deletion app/controller/resenhasController.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const resenhaControl = {
.isLength({ min: 3, max: 400 }).withMessage("A descrição deve ter entre 3 e 400 caracteres!")
,
body("textoResenha")
.isLength({ min: 3, max: 5000 }).withMessage("A resenha deve ter entre 3 e 1200 caracteres!")
.isLength({ min: 3, max: 6600 }).withMessage("A resenha deve ter entre 3 e 1200 caracteres!")
],
postarResenha: async (req, res) => {
let errors = validationResult(req)
Expand Down
37 changes: 27 additions & 10 deletions app/controller/usuariosController.js
Original file line number Diff line number Diff line change
Expand Up @@ -264,42 +264,59 @@ const usuariosController = {
let errors = validationResult(req)
if (!errors.isEmpty()) {
console.log(errors)
const user = req.session.autenticado ? await findUserById(req.session.autenticado.id) : new Error("Erro ao acessar o banco")
const user = req.session.autenticado ? await usuariosModel.findUserById(req.session.autenticado.id) : new Error("Erro ao acessar o banco")

const jsonResult = {
page: "../partial/edit-profile/index",
pageClass: "index",
usuario: user[0],
modalAberto: true,
erros: null
erros: null,
token: null
}
res.render("./pages/edit-profile", jsonResult)
} else {
try {
const caminhoFoto = req.session.autenticado.foto
var caminhoFoto = req.session.autenticado.foto

console.log(`img/imagens-servidor/perfil/${caminhoFoto}`)
if (!req.file) {
console.log("falha ao carregar arquivo!")
const user = req.session.autenticado ? await findUserById(req.session.autenticado.id) : new Error("Erro ao acessar o banco")
const user = req.session.autenticado ? await usuariosModel.findUserById(req.session.autenticado.id) : new Error("Erro ao acessar o banco")
const jsonResult = {
page: "../partial/edit-profile/index",
pageClass: "index",
usuario: user[0],
modalAberto: true,
erros: null
erros: null,
token: null
}
res.render("./pages/edit-profile", jsonResult)
} else {
if (caminhoFoto != req.file.filename) {
removeImg(`img/imagens-servidor/perfil/${caminhoFoto}`)
removeImg(`./app/public/img/imagens-servidor/perfil/${caminhoFoto}`)
}
caminhoFoto = req.file.filename
}

let resultado = await usuariosModel.updateUser({ CAMINHO_FOTO: caminhoFoto }, req.session.autenticado.id)
const user = await usuariosModel.findUserById(req.session.autenticado.id)

req.session.autenticado.foto = caminhoFoto
console.log(resultado)
const jsonResult = {
page: "../partial/edit-profile/index",
pageClass: "index",
usuario: user[0],
modalAberto: false,
erros: null,
token: { msg: "Foto de usuário atualizada", type: "success" }
}
res.render("./pages/edit-profile", jsonResult)

} catch (errors) {
console.log("falha ao carregar arquivo!")
console.log(errors)
res.render("pages/error-500")

}
}

Expand Down Expand Up @@ -361,7 +378,7 @@ const usuariosController = {
usuario: user[0].NICKNAME_USUARIO,
email: user[0].EMAIL_USUARIO,
},
token: { msg: "Perfil atualizado com sucesso!", type:"success"}
token: { msg: "Perfil atualizado com sucesso!", type: "success" }
}
res.render("./pages/edit-profile", jsonResult)
} else {
Expand All @@ -378,7 +395,7 @@ const usuariosController = {
usuario: user[0].NICKNAME_USUARIO,
email: user[0].EMAIL_USUARIO,
},
token: { msg: "Nenhuma alteração feita", type:"" }
token: { msg: "Nenhuma alteração feita", type: "" }
}
res.render("./pages/edit-profile", jsonResult)
}
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion app/routes/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ router.post("/logarConta", usuariosController.regrasValidacaoEntrar, middleWares

// Form de criação de Resenha

router.post("/criarResenha", resenhaControl.validacaoResenha, uploadCapa("capaResenha"), function (req, res) {
router.post("/criarResenha", uploadCapa("capaResenha"), resenhaControl.validacaoResenha, function (req, res) {
resenhaControl.postarResenha(req, res)
})

Expand Down
4 changes: 3 additions & 1 deletion app/util/removeImg.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
const fs = require("fs")

function removeImg(caminho) {
fs.unlink("app/public" + caminho, function (error) {
console.log(caminho)
fs.unlink(caminho, function (error) {
if (error && error.code == "ENOENT") {
console.log("Arquivo não existe, não foi possível apagar!");
return false;
} else if (error) {
console.log("Erro ao tentar apagar o arquivo");
console.log(error);
return false;
} else {
return true;
Expand Down
6 changes: 5 additions & 1 deletion app/util/upload.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
const { validationResult } = require("express-validator");
const multer = require("multer")
const path = require("path")

Expand All @@ -19,9 +20,10 @@ const createFileFilter = (extensoesPermitidas) => {

module.exports = (caminho = null, tamanhoArq = 3, extensoesPermitidas = ['jpeg', 'jpg', 'png']) => {
return (campoArquivo) => {
return (req, res, next) => {
return (req, res, next) => {
const fileFilter = createFileFilter(extensoesPermitidas);
// Salvar em SGBD

if (caminho == null) {
const storage = multer.memoryStorage();
upload = multer({
Expand Down Expand Up @@ -50,6 +52,8 @@ module.exports = (caminho = null, tamanhoArq = 3, extensoesPermitidas = ['jpeg',
fileFilter: fileFilter
});
}


req.session.erroMulter = null
upload.single(campoArquivo)(req, res, function (err) {
if (err instanceof multer.MulterError) {
Expand Down
2 changes: 1 addition & 1 deletion app/views/partial/edit-profile/index.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@
<i class="bi bi-arrow-right-short setinha"></i>
</a>

<%- include("../template-home/mudar-foto-modal") %>
<%- include("./mudar-foto-modal") %>
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
<section class="mudarFoto__modal modal" id="mudarFotoModal">
<button class="closeBtn btn"><i class="bi bi-x-lg"></i></button>
<section class="modal__content">

<form action="/mudarFoto" method="post" enctype="multipart/form-data" class="form__mudar-foto">
<h2 class="subtitle">Mudar foto de perfil</h2>

<article class="input__container input-file perfil" data-capaContainer>
<span class="invalid-msg smallText pt-3">
</span>
Expand All @@ -11,8 +13,10 @@
<label for="imgPerfil"></label>
<label for="imgPerfil" class="icon"><i class="bi bi-download"></i></label>
</article>

<button class="btn mt-3" type="submit">Mudar</button>
</form>

</section>
</section>

Expand Down
5 changes: 5 additions & 0 deletions tarefas.mkd
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
- Alterar senha do usuário;
- Validar proporção das imagens dos formulários (cadastro, publicações, etc.) e definir seus tamanhos;


### Banco de dados
-

Expand All @@ -30,3 +31,7 @@

"Essa lista pd ser passada e armazena a partir de HTTPS, mantendo sempre os videos em um array de ids de videos para carregar na pagina"
}
### Dúvidas
- Bug de salvar imagem mesmo com erro de validação;
- Problemas ao mudar foto de perfil (Caso coloque um tipo diferente, ele faz um erro estranho.)
- Como salvar uma imagem padrão para o usuário sem input(se tem como e senão, apenas coloque um escondido).

0 comments on commit 25f0939

Please sign in to comment.