63 lines
2.8 KiB
JavaScript
63 lines
2.8 KiB
JavaScript
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;
|
|
}
|
|
}
|