Skip to content

Commit

Permalink
Add mail sender
Browse files Browse the repository at this point in the history
  • Loading branch information
MathieuSchl committed Dec 18, 2023
1 parent f900c5f commit 840d9a2
Show file tree
Hide file tree
Showing 12 changed files with 1,692 additions and 5,063 deletions.
94 changes: 50 additions & 44 deletions back/api/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,25 +155,28 @@ async function userGetAll(data) {
const inputText =
data.query && data.query.inputValue ? data.query.inputValue : "";
const page = data.query && data.query.page ? data.query.page : 0;
const orderCollumn = getOrderCollumnName(
data.query && data.query.collumnName ? data.query.collumnName : "i_id"
);
const orderCollumn =
"u." +
getOrderCollumnName(
data.query && data.query.collumnName ? data.query.collumnName : "i_id"
);
const order = data.query && data.query.order === "false" ? "DESC" : "ASC";
const querySelect = `SELECT i_id AS id,
v_firstName AS firstName,
v_lastName AS lastName,
v_email AS email,
v_title AS "title",
b_isMicrosoft AS "isMicrosoft"
FROM users
WHERE b_deleted = 0
AND b_visible = 1
const querySelect = `SELECT u.i_id AS id,
u.v_firstName AS firstName,
u.v_lastName AS lastName,
u.v_email AS email,
COALESCE(u.v_title, CONCAT(sch.v_name, " A", CAST(u.i_schoolyear AS CHAR))) AS "title",
u.b_isMicrosoft AS "isMicrosoft"
FROM users AS u
LEFT JOIN gd_school AS sch ON u.i_idschool = sch.i_id
WHERE u.b_deleted = 0
AND u.b_visible = 1
AND (
"" = ?
OR i_id LIKE CONCAT("%", ?, "%")
OR v_firstName LIKE CONCAT("%", ?, "%")
OR v_lastName LIKE CONCAT("%", ?, "%")
OR v_email LIKE CONCAT("%", ?, "%")
OR u.i_id LIKE CONCAT("%", ?, "%")
OR u.v_firstName LIKE CONCAT("%", ?, "%")
OR u.v_lastName LIKE CONCAT("%", ?, "%")
OR u.v_email LIKE CONCAT("%", ?, "%")
)
ORDER BY ${orderCollumn} ${order}
${data.query && data.query.all ? "" : "LIMIT ? OFFSET ?"};`;
Expand Down Expand Up @@ -278,20 +281,22 @@ async function userGetMe(data) {
code: 401,
};
}
const querySelect = `SELECT i_id AS id,
v_firstName AS "firstName",
v_lastName AS "lastName",
v_email AS "email",
dt_creationdate AS "creationDate",
v_discordid AS "discordid",
v_language AS "language",
v_title AS "title",
b_isMicrosoft AS "isMicrosoft",
(SELECT CASE WHEN dt_ruleSignature IS NULL THEN FALSE ELSE TRUE END FROM users WHERE i_id = ?) AS "acceptedRule",
b_mailValidated AS "mailValidated"
FROM users
WHERE i_id = ?
AND b_deleted = 0`;
const querySelect = `SELECT u.i_id AS id,
u.v_firstName AS "firstName",
u.v_lastName AS "lastName",
u.v_email AS "email",
u.dt_creationdate AS "creationDate",
u.v_discordid AS "discordid",
u.v_language AS "language",
COALESCE(u.v_title, CONCAT(sch.v_name, " A", CAST(u.i_schoolyear AS CHAR))) AS "title",
u.b_isMicrosoft AS "isMicrosoft",
(SELECT CASE WHEN u.dt_ruleSignature IS NULL THEN FALSE ELSE TRUE END FROM users AS u WHERE u.i_id = ?) AS "acceptedRule",
u.b_mailValidated AS "mailValidated"
FROM users AS u
LEFT JOIN gd_school AS sch ON u.i_idschool = sch.i_id
WHERE u.i_id = ?
AND b_deleted = 0`;

const dbRes = await data.app.executeQuery(data.app.db, querySelect, [
userIdAgent,
userIdAgent,
Expand Down Expand Up @@ -388,20 +393,21 @@ async function userGetById(data) {
code: 403,
};
}
const querySelect = `SELECT i_id AS "id",
v_firstName AS "firstName",
v_lastName AS "lastName",
v_email AS "email",
dt_creationdate AS "creationDate",
v_discordid AS "discordid",
v_language AS "language",
v_title AS "title",
b_isMicrosoft AS "isMicrosoft",
(SELECT CASE WHEN dt_ruleSignature IS NULL THEN FALSE ELSE TRUE END FROM users WHERE i_id = ?) AS "acceptedRule",
b_mailValidated AS "mailValidated"
FROM users
WHERE i_id = ?
AND b_deleted = 0`;
const querySelect = `SELECT u.i_id AS "id",
u.v_firstName AS "firstName",
u.v_lastName AS "lastName",
u.v_email AS "email",
u.dt_creationdate AS "creationDate",
u.v_discordid AS "discordid",
u.v_language AS "language",
COALESCE(u.v_title, CONCAT(sch.v_name, " A", CAST(u.i_schoolyear AS CHAR))) AS "title",
u.b_isMicrosoft AS "isMicrosoft",
(SELECT CASE WHEN u.dt_ruleSignature IS NULL THEN FALSE ELSE TRUE END FROM users AS u WHERE u.i_id = ?) AS "acceptedRule",
u.b_mailValidated AS "mailValidated"
FROM users AS u
LEFT JOIN gd_school AS sch ON u.i_idschool = sch.i_id
WHERE u.i_id = ?
AND u.b_deleted = 0`;
const dbRes = await data.app.executeQuery(data.app.db, querySelect, [
idUserTarget,
idUserTarget,
Expand Down
11 changes: 9 additions & 2 deletions back/api/user/password.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
const sha256 = require("sha256");
const sendMailFunction =
require("../../functions/sendMail").sendForgetPasswordMail;

function makeid(length) {
var result = "";
Expand Down Expand Up @@ -275,7 +277,8 @@ async function postForgottenPassword(data) {
}
const email = data.body.email;

const querySelect = `SELECT i_id AS id
const querySelect = `SELECT i_id AS id,
v_firstName AS firstName
FROM users
WHERE v_email = ?
AND b_deleted = 0
Expand All @@ -299,6 +302,7 @@ async function postForgottenPassword(data) {
};
}
const idNewUser = dbRes[1][0].id;
const firstName = dbRes[1][0].firstName;
const tocken = makeid(10);

const sendMail = data.body.sendMail == null ? true : data.body.sendMail;
Expand All @@ -309,6 +313,9 @@ async function postForgottenPassword(data) {
queryInsert,
[idNewUser, tocken, sendMail ? "1" : "0"]
);

await data.sendMailFunction(email, firstName, tocken);

/* c8 ignore start */
if (resInsertTocken[0]) {
console.log(resInsertTocken[0]);
Expand Down Expand Up @@ -486,7 +493,7 @@ async function startApi(app) {
req,
res
);
data.sendMailFunction = require("../../functions/sendMail");
data.sendMailFunction = sendMailFunction;
const result = await postForgottenPassword(data);
await require("../../functions/apiActions").sendResponse(
req,
Expand Down
6 changes: 5 additions & 1 deletion back/api/user/register.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const sha256 = require("sha256");
const sendMailFunction = require("../../functions/sendMail").sendRegisterMail;
const validateEmail = (email) => {
return String(email)
.toLowerCase()
Expand Down Expand Up @@ -168,6 +169,9 @@ async function postRegister(data) {
queryInsertTocken,
[idNewUser, tocken, sendMail ? "1" : "0"]
);

await data.sendMailFunction(data.body.email, data.body.firstName, tocken);

/* c8 ignore start */
if (resInsertTocken[0]) {
console.log(resInsertTocken[0]);
Expand Down Expand Up @@ -195,7 +199,7 @@ async function startApi(app) {
req,
res
);
data.sendMailFunction = require("../../functions/sendMail");
data.sendMailFunction = sendMailFunction;
const result = await postRegister(data);
await require("../../functions/apiActions").sendResponse(
req,
Expand Down
Loading

0 comments on commit 840d9a2

Please sign in to comment.