This commit is contained in:
Benjamin Toby
2025-07-07 09:14:37 +01:00
parent 6acf0f2cd6
commit ccb5605b58
30 changed files with 292 additions and 166 deletions
+2 -20
View File
@@ -38,6 +38,7 @@ export default async function loginUser({
cleanupTokens,
secureCookie,
request,
useLocal,
}: LoginUserParam): Promise<APILoginFunctionReturn> {
const grabedHostNames = grabHostNames({ userId: user_id || apiUserID });
const { host, port, scheme } = grabedHostNames;
@@ -105,26 +106,7 @@ export default async function loginUser({
*
* @description Look for local db settings in `.env` file and by pass the http request if available
*/
const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } =
process.env;
if (
DSQL_DB_HOST?.match(/./) &&
DSQL_DB_USERNAME?.match(/./) &&
DSQL_DB_PASSWORD?.match(/./) &&
DSQL_DB_NAME?.match(/./) &&
global.DSQL_USE_LOCAL
) {
let dbSchema: DSQL_DatabaseSchemaType | undefined;
try {
const localDbSchemaPath = path.resolve(
process.cwd(),
"dsql.schema.json"
);
dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8"));
} catch (error) {}
if (useLocal) {
httpResponse = await apiLoginUser({
database: database || process.env.DSQL_DB_NAME || "",
email: payload.email,
@@ -1,13 +1,11 @@
import http from "http";
import fs from "fs";
import path from "path";
import grabHostNames from "../../utils/grab-host-names";
import apiSendEmailCode from "../../functions/api/users/api-send-email-code";
import { SendOneTimeCodeEmailResponse } from "../../types";
type Param = {
key?: string;
database?: string;
database: string;
email: string;
temp_code_field_name?: string;
response?: http.ServerResponse & { [s: string]: any };
@@ -18,6 +16,7 @@ type Param = {
sender?: string;
user_id?: boolean;
extraCookies?: import("../../types").CookieObject[];
useLocal?: boolean;
};
/**
@@ -39,6 +38,7 @@ export default async function sendEmailCode(
user_id,
response,
extraCookies,
useLocal,
} = params;
const grabedHostNames = grabHostNames();
@@ -51,34 +51,11 @@ export default async function sendEmailCode(
const emailHtml = `<p>Please use this code to login</p>\n<h2>{{code}}</h2>\n<p>Please note that this code expires after 15 minutes</p>`;
/**
* Check for local DB settings
*
* @description Look for local db settings in `.env` file and by pass the http request if available
*/
const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } =
process.env;
if (
DSQL_DB_HOST?.match(/./) &&
DSQL_DB_USERNAME?.match(/./) &&
DSQL_DB_PASSWORD?.match(/./) &&
DSQL_DB_NAME?.match(/./) &&
global.DSQL_USE_LOCAL
) {
/** @type {import("../../types").DSQL_DatabaseSchemaType | undefined} */
let dbSchema: import("../../types").DSQL_DatabaseSchemaType | undefined;
try {
const localDbSchemaPath = path.resolve(
process.cwd(),
"dsql.schema.json"
);
dbSchema = JSON.parse(fs.readFileSync(localDbSchemaPath, "utf8"));
} catch (error) {}
console.log("useLocal", useLocal);
if (useLocal) {
return await apiSendEmailCode({
database: DSQL_DB_NAME,
database,
email,
email_login_field: emailLoginTempCodeFieldName,
html: emailHtml,
@@ -20,6 +20,10 @@ type Param = {
debug?: boolean;
secureCookie?: boolean;
loginOnly?: boolean;
/**
* Login without calling external API
*/
forceLocal?: boolean;
};
/**
@@ -38,6 +42,7 @@ export default async function googleAuth({
debug,
secureCookie,
loginOnly,
forceLocal,
}: Param): Promise<APILoginFunctionReturn> {
const grabedHostNames = grabHostNames({
userId: apiUserID || process.env.DSQL_API_USER_ID,
@@ -89,21 +94,7 @@ export default async function googleAuth({
success: false,
};
/**
* Check for local DB settings
*
* @description Look for local db settings in `.env` file and by pass the http request if available
*/
const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } =
process.env;
if (
DSQL_DB_HOST?.match(/./) &&
DSQL_DB_USERNAME?.match(/./) &&
DSQL_DB_PASSWORD?.match(/./) &&
DSQL_DB_NAME?.match(/./) &&
global.DSQL_USE_LOCAL
) {
if (forceLocal) {
if (debug) {
console.log(`Google login with Local Paradigm ...`);
}
@@ -113,6 +104,7 @@ export default async function googleAuth({
additionalFields,
additionalData,
debug,
loginOnly,
});
} else {
httpResponse = await new Promise((resolve, reject) => {