"use strict";
exports.id = 1311;
exports.ids = [1311];
exports.modules = {

/***/ 1311:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// @ts-check

const fs = __webpack_require__(7147);
const parseDbResults = __webpack_require__(8326);
const serverError = __webpack_require__(3017);
const DB_HANDLER = __webpack_require__(2224);
const DSQL_USER_DB_HANDLER = __webpack_require__(3403);
/**
 * DB handler for specific database
 * ==============================================================================
 * @async
 * @param {object} params - Single object params
 * @param {string} params.queryString - SQL string
 * @param {*[]} [params.queryValuesArray] - Values Array
 * @param {string} [params.database] - Database name
 * @param {import("../../types").DSQL_TableSchemaType} [params.tableSchema] - Table schema
 * @returns {Promise<any>}
 */ module.exports = async function varDatabaseDbHandler({ queryString , queryValuesArray , database , tableSchema ,  }) {
    /**
     * Declare variables
     *
     * @description Declare "results" variable
     */ const isMaster = database?.match(/^datasquirel$/) ? true : false;
    /** @type {any} */ const FINAL_DB_HANDLER = isMaster ? DB_HANDLER : DSQL_USER_DB_HANDLER;
    let results;
    /**
     * Fetch from db
     *
     * @description Fetch data from db if no cache
     */ try {
        if (queryString && queryValuesArray && Array.isArray(queryValuesArray) && queryValuesArray[0]) {
            results = isMaster ? await FINAL_DB_HANDLER(queryString, queryValuesArray) : await FINAL_DB_HANDLER({
                paradigm: "Full Access",
                database,
                queryString,
                queryValues: queryValuesArray
            });
        } else {
            results = isMaster ? await FINAL_DB_HANDLER(queryString) : await FINAL_DB_HANDLER({
                paradigm: "Full Access",
                database,
                queryString
            });
        }
    ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    } catch (/** @type {any} */ error) {
        serverError({
            component: "varDatabaseDbHandler/lines-29-32",
            message: error.message
        });
    }
    /**
     * Return results
     *
     * @description Return results add to cache if "req" param is passed
     */ if (results && tableSchema) {
        try {
            const unparsedResults = results;
            const parsedResults = await parseDbResults({
                unparsedResults: unparsedResults,
                tableSchema: tableSchema
            });
            return parsedResults;
        } catch (/** @type {any} */ error1) {
            console.log("\x1b[31mvarDatabaseDbHandler ERROR\x1b[0m =>", database, error1);
            serverError({
                component: "varDatabaseDbHandler/lines-52-53",
                message: error1.message
            });
            return null;
        }
    ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    } else if (results) {
        return results;
    ////////////////////////////////////////
    ////////////////////////////////////////
    ////////////////////////////////////////
    } else {
        return null;
    }
};


/***/ })

};
;