Elbab/process/process.js
2026-04-25 09:25:40 +03:00

109 lines
3.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const { generateJWT } = require("../middlewares/jwt");
const returndata = require("../middlewares/returndata");
const Accounts = require("../models/accounts");
const Logins = require("../models/logins");
const Sessions = require("../models/sessions");
const { queryAccount } = require("./query");
const createLogin = async function (email, password, accountId) {
try {
const create = await Logins.create({
email: email,
password: password,
accountId: accountId
});
if (create) {
return returndata(true, create, true);
} else {
return returndata(true, null, false);
};
} catch (error) {
return returndata(false, null, false);
};
}
exports.createLogin = createLogin;
const createAcount = async function (name, surname, username) {
try {
const create = await Accounts.create({
name: name,
surname: surname,
username: username
});
if (create) {
return returndata(true, create, true);
} else {
return returndata(false, null, true);
}
} catch (error) {
return returndata(false, null, false);
};
};
exports.createAcount = createAcount;
const createSession = async function (token, loginId) {
try {
const create = await Sessions.create({
token: token,
loginId: loginId
});
if (create) {
return returndata(true, create, true);
} else {
return returndata(true, null, false);
}
} catch (error) {
console.log(error);
return returndata(false, null, false);
};
};
exports.createSession = createSession;
const createRegister = async function ({ email, password }, { name, surname, username }) {
try {
const accountCheck = await queryAccount({ username: username });
if (accountCheck.Data?.id && accountCheck.Status === true && accountCheck.Success === true) {
return returndata(false, null, true, "Bu kullanıcı adı kullanılıyor.");
}
const account = (accountCheck.Data?.id) ? null : await createAcount(name, surname, username);
const login = (account.Data.id) ? await createLogin(email, password, account.Data.id) : null;
if (login === null) {
return returndata(false, null, true);
};
const tokenJWT = await generateJWT({
account: {
id: account.Data.id,
name: account.Data.name,
surname: account.Data.surname,
username: account.Data.username
}
});
if (account.Success === true && login.Success === true) {
return returndata(true, { account, login }, true);
} else {
return returndata(false, null, true);
};
} catch (error) {
console.log(53, error)
return returndata(false, null, false);
};
};
exports.createRegister = createRegister;
exports.updateAccount = async function ({ id, name = null, surname = null, username = null, email = null }) {
console.log(name, surname, username, email);
const result = await Accounts.update({
name: (name) ?? '',
surname: (surname) ?? '',
username: (username) ?? '',
email: (email) ?? ''
}, {
where: {
id: id
}
});
return result;
}