109 lines
3.4 KiB
JavaScript
109 lines
3.4 KiB
JavaScript
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;
|
||
} |