Skip to content

Commit

Permalink
Prototipo de código de envío de correos.
Browse files Browse the repository at this point in the history
  • Loading branch information
c3r38r170 committed Mar 6, 2024
1 parent 5f485c5 commit e7082de
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 16 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ package-lock.json
.personal
/storage/img/*
!/storage/img/user.webp
.env
2 changes: 2 additions & 0 deletions api/v1/ia.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
// TODO Refactor: Ver si se puede evitar axios. Si es estrictamente necesario, escribirlo en un comentario.
import axios from 'axios'
import event from 'events'
event.EventEmitter.defaultMaxListeners=50;

// TODO Security: Usar .env
const apiKey = 'B0ayZrLmS19aqobZA2wsYToeSqDz9cTm';
const base_url = 'https://api.deepinfra.com/v1/openai';

Expand Down
49 changes: 36 additions & 13 deletions api/v1/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,18 @@ import * as express from "express";
import * as bcrypt from "bcrypt";
import multer from "multer";
import path from "path"
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './storage/img')
},
filename: function (req, file, cb) {
cb(null, "imagenPerfil-" + req.session.usuario.DNI+".jpg")
},

})
var upload = multer({storage:storage,
import nodemailer from "nodemailer";

const upload = multer({
storage:multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './storage/img')
},
filename: function (req, file, cb) {
cb(null, "imagenPerfil-" + req.session.usuario.DNI+".jpg")
},

}),
fileFilter: function(req, file, cb){
const allowedExtensions = ['.jpg', '.png']; // Add more extensions as needed
const fileExtension = path.extname(file.originalname).toLowerCase();
Expand All @@ -20,7 +22,8 @@ var upload = multer({storage:storage,
} else {
cb(null, false); // Reject the file
}
}})
}
})
const router = express.Router();
import {
Usuario,
Expand Down Expand Up @@ -329,11 +332,31 @@ router.post("/usuario/:DNI/contrasenia", function (req, res) {
res.status(404).send("DNI inexistente");
return;
}

let contraseniaNueva = generarContrasenia();
usu.contrasenia = contraseniaNueva;

//TODO Feature: mandar mail
usu.save().then(res.status(200).send("DNI encontrado, correo enviado"));
Promise.all([
nodemailer
.createTransport({
host: process.env.CORREO_HOST,
port: process.env.CORREO_PORT,
secure: true, // Use `true` for port 465, `false` for all other ports
auth: {
user: process.env.CORREO_USER,
pass: process.env.CORREO_PASS,
},
})
.sendMail({
from: '"UTN FAQ - Recuperación de contraseña" <[email protected]>', // sender address
to: usu.correo, // list of receivers
subject: "UTN FAQ - Recuperación de contraseña", // Subject line
text: `¡Saludos, ${usu.nombre}! Tu contraseña temporal es "${contraseniaNueva}" (sin comillas).`, // plain text body
html: `<big>¡Saludos, ${usu.nombre}!</big><br/><p>Se ha reestablecido tu contraseña, tu nueva contraseña temporal es:</p><pre>${contraseniaNueva}}</pre><p>No olvides cambiarla por otra / personalizarla cuando entres.</p><p><a href=${process.env.DIRECCION}>¡Te esperamos!</a></p>`, // html body
})
,usu.save()
])
.then(res.status(200).send("Se ha reestablecido la contraseña. Revise su correo electrónico para poder acceder."));
});
});

Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@
"dotenv": "16.3.1",
"express": "4.18.2",
"express-session": "1.17.3",
"mocha": "^10.2.0",
"multer": "^1.4.5-lts.1",
"mocha": "10.2.0",
"multer": "1.4.5-lts.1",
"mysql2": "3.6.5",
"nodemailer": "6.9.11",
"openai": "4.0.0",
"request": "2.88.2",
"sequelize": "6.35.2",
Expand Down
2 changes: 1 addition & 1 deletion server.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import express from 'express';
import cors from 'cors';
import session from 'express-session';

import 'dotenv/config';

var app = express();

Expand Down

0 comments on commit e7082de

Please sign in to comment.