import varDatabaseDbHandler from "../utils/varDatabaseDbHandler"; import numberfy from "../../utils/numberfy"; import addDbEntry from "../../functions/backend/db/addDbEntry"; import updateDbEntry from "../../functions/backend/db/updateDbEntry"; /** * # Create database from Schema Function * @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database */ export default async function checkDbRecordCreateDbSchema({ userId, dbSchema, isMain, }) { var _a, _b; if (isMain) return undefined; try { const { dbFullName, dbName, dbSlug, dbDescription, dbImage, childDatabase, childDatabaseDbId, id, } = dbSchema; let recordedDbEntryArray = userId ? await varDatabaseDbHandler({ queryString: `SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?`, queryValuesArray: [dbFullName || "NULL"], }) : undefined; let recordedDbEntry = recordedDbEntryArray === null || recordedDbEntryArray === void 0 ? void 0 : recordedDbEntryArray[0]; const newDbEntryObj = { user_id: numberfy(userId), db_name: dbName, db_slug: dbSlug, db_full_name: dbFullName, db_description: dbDescription, db_image: dbImage, active_clone: childDatabase ? 1 : undefined, db_schema_id: numberfy(id), active_clone_parent_db_id: numberfy(childDatabaseDbId), }; if (!(recordedDbEntry === null || recordedDbEntry === void 0 ? void 0 : recordedDbEntry.id) && userId) { const newDbEntry = await addDbEntry({ data: newDbEntryObj, tableName: "user_databases", forceLocal: true, }); if ((_a = newDbEntry.payload) === null || _a === void 0 ? void 0 : _a.insertId) { recordedDbEntryArray = await varDatabaseDbHandler({ queryString: `SELECT * FROM datasquirel.user_databases WHERE db_full_name = ?`, queryValuesArray: [dbFullName || "NULL"], }); recordedDbEntry = recordedDbEntryArray === null || recordedDbEntryArray === void 0 ? void 0 : recordedDbEntryArray[0]; } } else if (recordedDbEntry === null || recordedDbEntry === void 0 ? void 0 : recordedDbEntry.id) { await updateDbEntry({ data: newDbEntryObj, tableName: "user_databases", forceLocal: true, identifierColumnName: "id", identifierValue: String(recordedDbEntry.id), }); } return recordedDbEntry; } catch (error) { (_b = global.ERROR_CALLBACK) === null || _b === void 0 ? void 0 : _b.call(global, `Error Checking DB Record on Creating Schema`, error); return undefined; } }