dsql-admin/dsql-app/.local_dist/server/chunks/2630.js
2024-11-05 12:12:42 +01:00

77 lines
4.2 KiB
JavaScript

"use strict";
exports.id = 2630;
exports.ids = [2630];
exports.modules = {
/***/ 2630:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "Z": () => (/* binding */ importExportTableDataFn)
/* harmony export */ });
/* harmony import */ var _package_shared_functions_backend_db_addDbEntry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5338);
/* harmony import */ var _package_shared_functions_backend_db_addDbEntry__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_package_shared_functions_backend_db_addDbEntry__WEBPACK_IMPORTED_MODULE_0__);
// @ts-check
const serverError = __webpack_require__(2163);
const DB_HANDLER = __webpack_require__(2224);
/** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /**
* @typedef {object} ExportTableDataFnReturn
* @property {any} [tableData]
*/ /**
* ==============================================================================
* @param {Object} params - Single object parameter
* @param {"export" | "import"} params.paradigm
* @param {string | number} params.userId
* @param {string} params.dbName
* @param {string} params.tableName
* @param {any} params.payload
* @param {"JSON" | "base64" | "object"} params.payloadType
* @return {Promise<ExportTableDataFnReturn | null>}
*/ async function importExportTableDataFn({ paradigm , userId , dbName , tableName , payload , payloadType , }) {
/** @type {ExportTableDataFnReturn} */ let returnObject = {};
try {
const dbFullName = `${process.env.DSQL_USER_DB_PREFIX}${userId}_${dbName.replace(/ /g, "")}`;
switch(paradigm){
case "export":
const tableData = await DB_HANDLER(`SELECT * FROM \`${dbFullName}\`.\`${tableName}\``);
returnObject["tableData"] = tableData;
break;
case "import":
const jsonData = payloadType == "base64" ? Buffer.from(payload, "base64").toString() : payloadType == "JSON" ? payload : payload;
const writeData = payloadType === "object" ? payload : JSON.parse(jsonData);
for(let i = 0; i < writeData.length; i++){
const dataToWrite = writeData[i];
const newEntry = await _package_shared_functions_backend_db_addDbEntry__WEBPACK_IMPORTED_MODULE_0___default()({
data: dataToWrite,
dbFullName: dbFullName,
tableName: tableName,
dbContext: "Dsql User",
paradigm: "Full Access",
duplicateColumnName: "id",
duplicateColumnValue: dataToWrite?.id,
update: true
});
if (newEntry.error) {
throw new Error(newEntry.error);
}
}
break;
default:
return null;
}
return returnObject;
} catch (/** @type {any} */ error) {
serverError({
component: "/functions/backend/importExportTableDataFn",
message: error.message
});
return null;
}
} /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */
/***/ })
};
;