Updates
This commit is contained in:
@@ -2,7 +2,7 @@ import { APICreateUserFunctionParams } from "../../../types";
|
||||
/**
|
||||
* # API Create User
|
||||
*/
|
||||
export default function apiCreateUser({ encryptionKey, payload, database, userId, }: APICreateUserFunctionParams): Promise<{
|
||||
export default function apiCreateUser({ encryptionKey, payload, database, userId, verify, }: APICreateUserFunctionParams): Promise<{
|
||||
success: boolean;
|
||||
msg: string;
|
||||
payload?: undefined;
|
||||
|
||||
+30
-22
@@ -17,17 +17,15 @@ const grab_required_database_schemas_1 = require("../../../shell/createDbFromSch
|
||||
const addUsersTableToDb_1 = __importDefault(require("../../backend/addUsersTableToDb"));
|
||||
const addDbEntry_1 = __importDefault(require("../../backend/db/addDbEntry"));
|
||||
const updateUsersTableSchema_1 = __importDefault(require("../../backend/updateUsersTableSchema"));
|
||||
const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler"));
|
||||
const dbHandler_1 = __importDefault(require("../../backend/dbHandler"));
|
||||
const hashPassword_1 = __importDefault(require("../../dsql/hashPassword"));
|
||||
const validate_email_1 = __importDefault(require("../../email/fns/validate-email"));
|
||||
/**
|
||||
* # API Create User
|
||||
*/
|
||||
function apiCreateUser(_a) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ encryptionKey, payload, database, userId, }) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ encryptionKey, payload, database, userId, verify, }) {
|
||||
var _b;
|
||||
const dbFullName = database;
|
||||
const API_USER_ID = userId || process.env.DSQL_API_USER_ID;
|
||||
const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD;
|
||||
if (!finalEncryptionKey) {
|
||||
return {
|
||||
@@ -43,9 +41,10 @@ function apiCreateUser(_a) {
|
||||
payload: null,
|
||||
};
|
||||
}
|
||||
const targetDbSchema = (0, grab_required_database_schemas_1.findDbNameInSchemaDir)({
|
||||
dbName: dbFullName,
|
||||
const targetDbSchema = (0, grab_required_database_schemas_1.grabPrimaryRequiredDbSchema)({
|
||||
dbSlug: database,
|
||||
userId,
|
||||
dbId: userId ? undefined : 1,
|
||||
});
|
||||
if (!(targetDbSchema === null || targetDbSchema === void 0 ? void 0 : targetDbSchema.id)) {
|
||||
return {
|
||||
@@ -54,27 +53,35 @@ function apiCreateUser(_a) {
|
||||
payload: null,
|
||||
};
|
||||
}
|
||||
const dbFullName = targetDbSchema.dbFullName;
|
||||
if (!dbFullName) {
|
||||
return {
|
||||
success: false,
|
||||
msg: "dbFullName not found",
|
||||
payload: null,
|
||||
};
|
||||
}
|
||||
const hashedPassword = (0, hashPassword_1.default)({
|
||||
encryptionKey: finalEncryptionKey,
|
||||
password: String(payload.password),
|
||||
});
|
||||
payload.password = hashedPassword;
|
||||
const fieldsQuery = `SHOW COLUMNS FROM ${dbFullName}.users`;
|
||||
let fields = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: fieldsQuery,
|
||||
let fields = (yield (0, dbHandler_1.default)({
|
||||
query: fieldsQuery,
|
||||
database: dbFullName,
|
||||
});
|
||||
}));
|
||||
if (!(fields === null || fields === void 0 ? void 0 : fields[0])) {
|
||||
const newTable = yield (0, addUsersTableToDb_1.default)({
|
||||
userId: Number(API_USER_ID),
|
||||
userId,
|
||||
database: dbFullName,
|
||||
payload: payload,
|
||||
dbId: targetDbSchema.id,
|
||||
});
|
||||
fields = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: fieldsQuery,
|
||||
fields = (yield (0, dbHandler_1.default)({
|
||||
query: fieldsQuery,
|
||||
database: dbFullName,
|
||||
});
|
||||
}));
|
||||
}
|
||||
if (!(fields === null || fields === void 0 ? void 0 : fields[0])) {
|
||||
return {
|
||||
@@ -88,7 +95,7 @@ function apiCreateUser(_a) {
|
||||
const key = Object.keys(payload)[i];
|
||||
if (!fieldsTitles.includes(key)) {
|
||||
yield (0, updateUsersTableSchema_1.default)({
|
||||
userId: Number(API_USER_ID),
|
||||
userId,
|
||||
database: dbFullName,
|
||||
newPayload: {
|
||||
[key]: payload[key],
|
||||
@@ -107,11 +114,11 @@ function apiCreateUser(_a) {
|
||||
const existingUserValues = payload.username
|
||||
? [payload.email, payload.username]
|
||||
: [payload.email];
|
||||
const existingUser = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: existingUserQuery,
|
||||
queryValuesArray: existingUserValues,
|
||||
const existingUser = (yield (0, dbHandler_1.default)({
|
||||
query: existingUserQuery,
|
||||
values: existingUserValues,
|
||||
database: dbFullName,
|
||||
});
|
||||
}));
|
||||
if (existingUser === null || existingUser === void 0 ? void 0 : existingUser[0]) {
|
||||
return {
|
||||
success: false,
|
||||
@@ -132,14 +139,15 @@ function apiCreateUser(_a) {
|
||||
tableName: "users",
|
||||
data: Object.assign(Object.assign({}, payload), { image: process.env.DSQL_DEFAULT_USER_IMAGE ||
|
||||
"/images/user-preset.png", image_thumbnail: process.env.DSQL_DEFAULT_USER_IMAGE ||
|
||||
"/images/user-preset-thumbnail.png" }),
|
||||
"/images/user-preset-thumbnail.png", verification_status: verify ? 1 : 0 }),
|
||||
});
|
||||
if ((_b = addUser === null || addUser === void 0 ? void 0 : addUser.payload) === null || _b === void 0 ? void 0 : _b.insertId) {
|
||||
const newlyAddedUserQuery = `SELECT id,uuid,first_name,last_name,email,username,image,image_thumbnail,verification_status FROM ${dbFullName}.users WHERE id='${addUser.payload.insertId}'`;
|
||||
const newlyAddedUser = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: newlyAddedUserQuery,
|
||||
const newlyAddedUser = (yield (0, dbHandler_1.default)({
|
||||
query: newlyAddedUserQuery,
|
||||
values: [],
|
||||
database: dbFullName,
|
||||
});
|
||||
}));
|
||||
return {
|
||||
success: true,
|
||||
payload: newlyAddedUser[0],
|
||||
|
||||
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = apiDeleteUser;
|
||||
const deleteDbEntry_1 = __importDefault(require("../../backend/db/deleteDbEntry"));
|
||||
const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler"));
|
||||
const dbHandler_1 = __importDefault(require("../../backend/dbHandler"));
|
||||
/**
|
||||
* # Update API User Function
|
||||
*/
|
||||
@@ -22,11 +22,11 @@ function apiDeleteUser(_a) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ dbFullName, deletedUserId, }) {
|
||||
const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE id = ?`;
|
||||
const existingUserValues = [deletedUserId];
|
||||
const existingUser = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: existingUserQuery,
|
||||
queryValuesArray: existingUserValues,
|
||||
const existingUser = (yield (0, dbHandler_1.default)({
|
||||
query: existingUserQuery,
|
||||
values: existingUserValues,
|
||||
database: dbFullName,
|
||||
});
|
||||
}));
|
||||
if (!(existingUser === null || existingUser === void 0 ? void 0 : existingUser[0])) {
|
||||
return {
|
||||
success: false,
|
||||
|
||||
+5
-5
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = apiGetUser;
|
||||
const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler"));
|
||||
const dbHandler_1 = __importDefault(require("../../backend/dbHandler"));
|
||||
/**
|
||||
* # API Get User
|
||||
*/
|
||||
@@ -22,11 +22,11 @@ function apiGetUser(_a) {
|
||||
const finalDbName = dbFullName.replace(/[^a-z0-9_]/g, "");
|
||||
const query = `SELECT ${fields.join(",")} FROM ${finalDbName}.users WHERE id=?`;
|
||||
const API_USER_ID = userId || process.env.DSQL_API_USER_ID;
|
||||
let foundUser = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: query,
|
||||
queryValuesArray: [API_USER_ID],
|
||||
let foundUser = (yield (0, dbHandler_1.default)({
|
||||
query,
|
||||
values: [API_USER_ID],
|
||||
database: finalDbName,
|
||||
});
|
||||
}));
|
||||
if (!foundUser || !foundUser[0]) {
|
||||
return {
|
||||
success: false,
|
||||
|
||||
+8
-10
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = apiLoginUser;
|
||||
const grab_db_full_name_1 = __importDefault(require("../../../utils/grab-db-full-name"));
|
||||
const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler"));
|
||||
const dbHandler_1 = __importDefault(require("../../backend/dbHandler"));
|
||||
const hashPassword_1 = __importDefault(require("../../dsql/hashPassword"));
|
||||
/**
|
||||
* # API Login
|
||||
@@ -29,7 +29,6 @@ function apiLoginUser(_a) {
|
||||
msg: `Database Full Name couldn't be grabbed`,
|
||||
};
|
||||
}
|
||||
const dbAppend = global.DSQL_USE_LOCAL ? "" : `${dbFullName}.`;
|
||||
/**
|
||||
* Check input validity
|
||||
*
|
||||
@@ -58,12 +57,11 @@ function apiLoginUser(_a) {
|
||||
console.log("apiLoginUser:database:", dbFullName);
|
||||
console.log("apiLoginUser:Finding User ...");
|
||||
}
|
||||
let foundUser = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `SELECT * FROM ${dbAppend}users WHERE email = ? OR username = ?`,
|
||||
queryValuesArray: [email, username],
|
||||
let foundUser = (yield (0, dbHandler_1.default)({
|
||||
query: `SELECT * FROM users WHERE email = ? OR username = ?`,
|
||||
values: [email, username],
|
||||
database: dbFullName,
|
||||
debug,
|
||||
});
|
||||
}));
|
||||
if (debug) {
|
||||
console.log("apiLoginUser:foundUser:", foundUser);
|
||||
}
|
||||
@@ -119,9 +117,9 @@ function apiLoginUser(_a) {
|
||||
console.log("apiLoginUser:email_login:", email_login);
|
||||
}
|
||||
if (isPasswordCorrect && email_login) {
|
||||
const resetTempCode = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `UPDATE ${dbAppend}users SET ${email_login_field} = '' WHERE email = ? OR username = ?`,
|
||||
queryValuesArray: [email, username],
|
||||
yield (0, dbHandler_1.default)({
|
||||
query: `UPDATE users SET ${email_login_field} = '' WHERE email = ? OR username = ?`,
|
||||
values: [email, username],
|
||||
database: dbFullName,
|
||||
});
|
||||
}
|
||||
|
||||
+5
-10
@@ -13,23 +13,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = apiReauthUser;
|
||||
const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler"));
|
||||
const dbHandler_1 = __importDefault(require("../../backend/dbHandler"));
|
||||
/**
|
||||
* # Re-authenticate API user
|
||||
*/
|
||||
function apiReauthUser(_a) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ existingUser, database, additionalFields, }) {
|
||||
const dbAppend = global.DSQL_USE_LOCAL
|
||||
? ""
|
||||
: database
|
||||
? `${database}.`
|
||||
: "";
|
||||
let foundUser = (existingUser === null || existingUser === void 0 ? void 0 : existingUser.id) && existingUser.id.toString().match(/./)
|
||||
? yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `SELECT * FROM ${dbAppend}users WHERE id=?`,
|
||||
queryValuesArray: [existingUser.id.toString()],
|
||||
? (yield (0, dbHandler_1.default)({
|
||||
query: `SELECT * FROM users WHERE id=?`,
|
||||
values: [existingUser.id.toString()],
|
||||
database,
|
||||
})
|
||||
}))
|
||||
: null;
|
||||
if (!foundUser || !foundUser[0])
|
||||
return {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import http from "http";
|
||||
import { SendOneTimeCodeEmailResponse } from "../../../types";
|
||||
import { CookieObject, SendOneTimeCodeEmailResponse } from "../../../types";
|
||||
type Param = {
|
||||
email: string;
|
||||
database: string;
|
||||
@@ -13,7 +13,7 @@ type Param = {
|
||||
response?: http.ServerResponse & {
|
||||
[s: string]: any;
|
||||
};
|
||||
extraCookies?: import("../../../../package-shared/types").CookieObject[];
|
||||
extraCookies?: CookieObject[];
|
||||
};
|
||||
/**
|
||||
* # Send Email Login Code
|
||||
|
||||
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = apiSendEmailCode;
|
||||
const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler"));
|
||||
const dbHandler_1 = __importDefault(require("../../backend/dbHandler"));
|
||||
const nodemailer_1 = __importDefault(require("nodemailer"));
|
||||
const get_auth_cookie_names_1 = __importDefault(require("../../backend/cookies/get-auth-cookie-names"));
|
||||
const encrypt_1 = __importDefault(require("../../dsql/encrypt"));
|
||||
@@ -32,14 +32,11 @@ function apiSendEmailCode(_a) {
|
||||
const createdAt = Date.now();
|
||||
const foundUserQuery = `SELECT * FROM ${database}.users WHERE email = ?`;
|
||||
const foundUserValues = [email];
|
||||
let foundUser = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: foundUserQuery,
|
||||
queryValuesArray: foundUserValues,
|
||||
let foundUser = (yield (0, dbHandler_1.default)({
|
||||
query: foundUserQuery,
|
||||
values: foundUserValues,
|
||||
database,
|
||||
});
|
||||
////////////////////////////////////////
|
||||
////////////////////////////////////////
|
||||
////////////////////////////////////////
|
||||
}));
|
||||
if (!foundUser || !foundUser[0]) {
|
||||
return {
|
||||
success: false,
|
||||
@@ -80,12 +77,11 @@ function apiSendEmailCode(_a) {
|
||||
throw new Error("Mail not Sent!");
|
||||
const setTempCodeQuery = `UPDATE ${database}.users SET ${email_login_field} = ? WHERE email = ?`;
|
||||
const setTempCodeValues = [tempCode + `-${createdAt}`, email];
|
||||
let setTempCode = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: setTempCodeQuery,
|
||||
queryValuesArray: setTempCodeValues,
|
||||
yield (0, dbHandler_1.default)({
|
||||
query: setTempCodeQuery,
|
||||
values: setTempCodeValues,
|
||||
database,
|
||||
});
|
||||
/** @type {import("../../../types").SendOneTimeCodeEmailResponse} */
|
||||
const resObject = {
|
||||
success: true,
|
||||
code: tempCode,
|
||||
@@ -102,7 +98,6 @@ function apiSendEmailCode(_a) {
|
||||
if (!encryptedPayload) {
|
||||
throw new Error("apiSendEmailCode Error: Failed to encrypt payload");
|
||||
}
|
||||
/** @type {import("../../../../package-shared/types").CookieObject} */
|
||||
const oneTimeCookieObject = {
|
||||
name: oneTimeCodeCookieName,
|
||||
value: encryptedPayload,
|
||||
@@ -111,7 +106,6 @@ function apiSendEmailCode(_a) {
|
||||
httpOnly: true,
|
||||
secure: true,
|
||||
};
|
||||
/** @type {import("../../../../package-shared/types").CookieObject[]} */
|
||||
const cookiesObjectArray = extraCookies
|
||||
? [...extraCookies, oneTimeCookieObject]
|
||||
: [oneTimeCookieObject];
|
||||
|
||||
@@ -17,7 +17,7 @@ exports.default = apiUpdateUser;
|
||||
const updateDbEntry_1 = __importDefault(require("../../backend/db/updateDbEntry"));
|
||||
const encrypt_1 = __importDefault(require("../../dsql/encrypt"));
|
||||
const hashPassword_1 = __importDefault(require("../../dsql/hashPassword"));
|
||||
const varDatabaseDbHandler_1 = __importDefault(require("../../backend/varDatabaseDbHandler"));
|
||||
const dbHandler_1 = __importDefault(require("../../backend/dbHandler"));
|
||||
/**
|
||||
* # Update API User Function
|
||||
*/
|
||||
@@ -25,11 +25,11 @@ function apiUpdateUser(_a) {
|
||||
return __awaiter(this, arguments, void 0, function* ({ payload, dbFullName, updatedUserId, dbSchema, }) {
|
||||
const existingUserQuery = `SELECT * FROM ${dbFullName}.users WHERE id = ?`;
|
||||
const existingUserValues = [updatedUserId];
|
||||
const existingUser = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: existingUserQuery,
|
||||
queryValuesArray: existingUserValues,
|
||||
const existingUser = (yield (0, dbHandler_1.default)({
|
||||
query: existingUserQuery,
|
||||
values: existingUserValues,
|
||||
database: dbFullName,
|
||||
});
|
||||
}));
|
||||
if (!(existingUser === null || existingUser === void 0 ? void 0 : existingUser[0])) {
|
||||
return {
|
||||
success: false,
|
||||
|
||||
+5
-6
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = apiSendResetPasswordLink;
|
||||
const grab_db_full_name_1 = __importDefault(require("../../../../utils/grab-db-full-name"));
|
||||
const varDatabaseDbHandler_1 = __importDefault(require("../../../backend/varDatabaseDbHandler"));
|
||||
const dbHandler_1 = __importDefault(require("../../../backend/dbHandler"));
|
||||
/**
|
||||
* # API Login
|
||||
*/
|
||||
@@ -33,12 +33,11 @@ function apiSendResetPasswordLink(_a) {
|
||||
msg: "Invalid Email/Password format",
|
||||
};
|
||||
}
|
||||
let foundUser = yield (0, varDatabaseDbHandler_1.default)({
|
||||
queryString: `SELECT * FROM ${dbFullName}.users WHERE email = ? OR username = ?`,
|
||||
queryValuesArray: [email, email],
|
||||
let foundUser = (yield (0, dbHandler_1.default)({
|
||||
query: `SELECT * FROM ${dbFullName}.users WHERE email = ? OR username = ?`,
|
||||
values: [email, email],
|
||||
database: dbFullName,
|
||||
debug,
|
||||
});
|
||||
}));
|
||||
if (debug) {
|
||||
console.log("apiSendResetPassword:foundUser:", foundUser);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user