"use strict"; (() => { var exports = {}; exports.id = 9875; exports.ids = [9875]; exports.modules = { /***/ 6517: /***/ ((module) => { module.exports = require("lodash"); /***/ }), /***/ 6109: /***/ ((module) => { module.exports = require("sanitize-html"); /***/ }), /***/ 2261: /***/ ((module) => { module.exports = require("serverless-mysql"); /***/ }), /***/ 4300: /***/ ((module) => { module.exports = require("buffer"); /***/ }), /***/ 6113: /***/ ((module) => { module.exports = require("crypto"); /***/ }), /***/ 7147: /***/ ((module) => { module.exports = require("fs"); /***/ }), /***/ 3685: /***/ ((module) => { module.exports = require("http"); /***/ }), /***/ 1017: /***/ ((module) => { module.exports = require("path"); /***/ }), /***/ 1689: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check /** * Imports: Handle imports */ const sanitizeHtml = __webpack_require__(6109); const DB_HANDLER = __webpack_require__(2224); const addDbEntry = __webpack_require__(5338); const sanitizeHtmlOptions = __webpack_require__(9544); /** * Add a db Entry Function * ============================================================================== * @description Description * @async * * @param {object} params - An object containing the function parameters. * @param {any} params.body - Request body * @param {boolean} [params.update] - Update if existing * * @returns {Promise} */ module.exports = async function({ body , update }) { /** * Initialize variables */ const slug = body.title.toLowerCase().replace(/ /g, "-").replace(/[^a-z0-9\-]/g, ""); const currentOrder = await async function() { if (update) return null; try { const lastOrder = await DB_HANDLER(`SELECT page_order FROM docs_pages ORDER BY page_order DESC LIMIT 1`); return lastOrder[0].page_order; } catch (error) { return null; } }(); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Handle function logic * @type {any} */ const addDocPage = await addDbEntry({ data: { title: body.title, slug: slug, description: sanitizeHtml(body.description, sanitizeHtmlOptions), content: sanitizeHtml(body.content, sanitizeHtmlOptions), text_content: body.text_content, level: body.level, page_order: update ? body.page_order : parseInt(currentOrder) + 1, parent_id: body?.parent_id }, tableName: "docs_pages", update: update, duplicateColumnName: "id", duplicateColumnValue: body.id }); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Return statement */ if (addDocPage?.insertId) { return addDocPage; } else if (update && addDocPage.affectedRows) { return addDocPage; } { return null; } }; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /***/ }), /***/ 6672: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check const DB_HANDLER = __webpack_require__(2224); /** * Imports: Handle imports */ /** * Add a db Entry Function * ============================================================================== * @description Description * @async * * @param {object} params - An object containing the function parameters. * @param {any} params.body - Request body * @param {boolean} [params.update] - Update if existing * * @returns {Promise} */ module.exports = async function({ body }) { /** * Initialize variables */ //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Handle function logic */ const deleteDocPage = await DB_HANDLER(`DELETE FROM docs_pages WHERE id=?`, [ body.id ]); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Return statement */ if (deleteDocPage) { return deleteDocPage; } else { return null; } }; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /***/ }), /***/ 2755: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check /** * Imports: Handle imports */ const fs = __webpack_require__(7147); /** * Add a db Entry Function * ============================================================================== * @description Description * @async * * @param {object} params - An object containing the function parameters. * @param {object} [params.body] - Request body * @param {boolean} [params.update] - Update if existing * * @returns {Promise} */ module.exports = async function() { /** * Initialize variables */ const snippetsDirectory = "./components/su/components/RichText/html-presets"; /** @type {any[]} */ let snippets = []; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Handle function logic */ if (fs.existsSync(snippetsDirectory)) { const presetFiles = fs.readdirSync(snippetsDirectory); presetFiles.forEach((file)=>{ if (file?.endsWith(".html")) { /** @type {any} */ const pushObject = {}; pushObject[file.replace(/\.html$/, "")] = fs.readFileSync(`${snippetsDirectory}/${file}`, "utf-8"); snippets.push({ ...pushObject }); } }); } //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Return statement */ return snippets; }; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /***/ }), /***/ 5217: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check /** * Imports: Handle imports */ const fs = __webpack_require__(7147); const DB_HANDLER = __webpack_require__(2224); /** * Add a db Entry Function * ============================================================================== * @description Description * @async * * @param {object} params - An object containing the function parameters. * @param {any} params.body - Request body * * @returns {Promise} */ module.exports = async function({ body }) { /** * Initialize variables */ let results; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Handle function logic */ const pages = await DB_HANDLER(`SELECT id, title, slug FROM docs_pages WHERE parent_id = ?`, [ body.pageId ]); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Return statement */ if (!pages[0]) return null; return pages; }; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /***/ }), /***/ 5030: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check /** * Imports: Handle imports */ const DB_HANDLER = __webpack_require__(2224); /** * Add a db Entry Function * ============================================================================== * @description Description * @async * * @param {object} params - An object containing the function parameters. * @param {any} params.body - Request body * * @returns {Promise} */ module.exports = async function({ body }) { /** * Initialize variables */ let results; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Handle function logic */ const pages = body?.currentPageId ? await DB_HANDLER(`SELECT * FROM docs_pages WHERE level = ? AND id != ?`, [ body.pagesLevel, body.currentPageId ]) : await DB_HANDLER(`SELECT * FROM docs_pages WHERE level = ?`, [ body.pagesLevel, ]); //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Return statement */ return pages; }; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /***/ }), /***/ 4751: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check /** * Imports: Handle imports */ const fs = __webpack_require__(7147); const DB_HANDLER = __webpack_require__(2224); /** * Add a db Entry Function * ============================================================================== * @description Description * @async * * @param {object} params - An object containing the function parameters. * @param {any} params.body - Request body * * @returns {Promise} */ module.exports = async function({ body }) { /** * Initialize variables */ const { pull } = body; const filePath = "./jsonData/docs.json"; // return null; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Handle function logic */ if (pull) { try { const jsonPages = JSON.parse(fs.readFileSync(filePath, "utf-8")); for(let i = 0; i < jsonPages.length; i++){ const page = jsonPages[i]; const existingPageEntry = await DB_HANDLER(`SELECT id FROM docs_pages WHERE slug = ? AND level = ?`, [ page.slug, page.level ]); if (existingPageEntry && existingPageEntry[0]) { let trimmedPage = { ...page }; delete trimmedPage.date_created; delete trimmedPage.date_created_code; delete trimmedPage.date_created_timestamp; delete trimmedPage.date_updated; delete trimmedPage.date_updated_code; delete trimmedPage.date_updated_timestamp; delete trimmedPage.id; const update = await DB_HANDLER(`UPDATE docs_pages SET ? WHERE slug = '${page.slug}' AND level = '${page.level}'`, trimmedPage); //////////////////////////////////////// } else { //////////////////////////////////////// let trimmedPage1 = { ...page }; delete trimmedPage1.date_created_timestamp; delete trimmedPage1.date_updated_timestamp; const newPage = await DB_HANDLER(`INSERT INTO docs_pages SET ?`, trimmedPage1); } } } catch (error) { // console.log(error.message); return null; } } else { const pages = await DB_HANDLER(`SELECT * FROM docs_pages`); fs.writeFileSync(filePath, JSON.stringify(pages, null, 4), "utf-8"); } //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** * Return statement */ return true; }; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /***/ }), /***/ 4108: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ handler) /* harmony export */ }); /* harmony import */ var _functions_backend_admin_addDocPage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1689); /* harmony import */ var _functions_backend_admin_addDocPage__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_functions_backend_admin_addDocPage__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _functions_backend_admin_deleteDocPage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6672); /* harmony import */ var _functions_backend_admin_deleteDocPage__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_functions_backend_admin_deleteDocPage__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _functions_backend_admin_getSnippets__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2755); /* harmony import */ var _functions_backend_admin_getSnippets__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_functions_backend_admin_getSnippets__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _functions_backend_admin_grabChildPages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5217); /* harmony import */ var _functions_backend_admin_grabChildPages__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_functions_backend_admin_grabChildPages__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _functions_backend_admin_grabParentPages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5030); /* harmony import */ var _functions_backend_admin_grabParentPages__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_functions_backend_admin_grabParentPages__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _functions_backend_admin_persistDocs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4751); /* harmony import */ var _functions_backend_admin_persistDocs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_functions_backend_admin_persistDocs__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _functions_backend_suAdminUserAuth__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4432); /* harmony import */ var _functions_backend_suAdminUserAuth__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_functions_backend_suAdminUserAuth__WEBPACK_IMPORTED_MODULE_6__); // @ts-check /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** * API handler * ============================================================================== * @type {import("next").NextApiHandler} */ async function handler(req, res) { /** * Check method * * @description Check request method and return if invalid */ if (req.method !== "POST") return res.json({ success: false, msg: "Wrong Method" }); /** * Validate Form * * @description Check if request body is valid */ const user = await _functions_backend_suAdminUserAuth__WEBPACK_IMPORTED_MODULE_6___default()(req); if (!user?.logged_in_status) { return res.json({ success: false, log: "Unauthorized" }); } //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// /** * Validate Form * * @description Check if request body is valid */ const { action } = req.query; const reqBody = req.body; //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// try { /** * Validate Form * * @description Check if request body is valid */ let result; switch(action){ case "add-page": result = await _functions_backend_admin_addDocPage__WEBPACK_IMPORTED_MODULE_0___default()({ body: reqBody }); break; case "update-page": result = await _functions_backend_admin_addDocPage__WEBPACK_IMPORTED_MODULE_0___default()({ body: reqBody, update: true }); break; case "delete-page": result = await _functions_backend_admin_deleteDocPage__WEBPACK_IMPORTED_MODULE_1___default()({ body: reqBody }); break; case "get-snippets": result = await _functions_backend_admin_getSnippets__WEBPACK_IMPORTED_MODULE_2___default()(); break; case "grab-parent-pages": result = await _functions_backend_admin_grabParentPages__WEBPACK_IMPORTED_MODULE_4___default()({ body: reqBody }); break; case "get-child-pages": result = await _functions_backend_admin_grabChildPages__WEBPACK_IMPORTED_MODULE_3___default()({ body: reqBody }); break; case "persist": result = await _functions_backend_admin_persistDocs__WEBPACK_IMPORTED_MODULE_5___default()({ body: reqBody }); break; default: break; } if (!result) throw new Error("Operation failed!"); //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// res.json({ success: true, result }); //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// } catch (error) { res.json({ success: false }); } } /***/ }) }; ; // load runtime var __webpack_require__ = require("../../../../webpack-api-runtime.js"); __webpack_require__.C(exports); var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) var __webpack_exports__ = __webpack_require__.X(0, [2224,3017,3403,7547,5886,5338,4432], () => (__webpack_exec__(4108))); module.exports = __webpack_exports__; })();