UNPKG

@openinc/parse-server-opendash

Version:
66 lines (65 loc) 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DocumentationConverter = void 0; const types_1 = require("../../../types"); const USER_ID = process.env.OI_DOCUMENTATION_USER_ID; const TENANT_ID = process.env.OI_DOCUMENTATION_TENANT_ID; class DocumentationConverter { constructor(importResults) { this.results = importResults; } async convert(user, tenant) { // Implement your conversion logic here if (!this.results.structure) return; this.convertFolderToCategory(this.results.structure.root, undefined, user, tenant); } async convertFolderToCategory(folder, parentCategory, user, tenant) { const existingCategory = await new Parse.Query(types_1.Documentation_Category) .equalTo("gitPath", folder.path) .equalTo("isDefault", true) .equalTo("user", user) .equalTo("tenant", tenant) .first({ useMasterKey: true }); const folderCategory = existingCategory || new types_1.Documentation_Category(); folderCategory.set("name", folder.config.title || folder.name); folderCategory.set("icon", folder.config.icon); folderCategory.set("order", folder.config.order || 999); folderCategory.set("parent", parentCategory); folderCategory.set("isDefault", true); folderCategory.set("gitPath", folder.path); if (user) folderCategory.set("user", user); if (tenant || user) folderCategory.set("tenant", tenant ?? user?.get("tenant")); const savedCategory = await folderCategory.save(null, { useMasterKey: true, }); for (const subfolder of folder.subfolders.values()) await this.convertFolderToCategory(subfolder, savedCategory, user, tenant); for (const file of folder.files) await this.convertFileToDocumentation(file, savedCategory, user, tenant); } async convertFileToDocumentation(file, category, user, tenant) { const existingDoc = await new Parse.Query(types_1.Documentation_Document) .equalTo("gitPath", file.path) .equalTo("isDefault", true) .first({ useMasterKey: true }); const doc = existingDoc || new types_1.Documentation_Document(); doc.set("title", file.config?.title || file.name); doc.set("content", file.content || ""); doc.set("icon", file.config?.icon); doc.set("order", file.config?.order || 999); doc.set("category", category); doc.set("locationPattern", file.config?.locationPattern); doc.set("locations", file.config?.locations || []); doc.set("isDefault", true); doc.set("gitPath", file.path); if (user) doc.set("user", user); if (tenant || user) doc.set("tenant", tenant ?? user?.get("tenant")); await doc.save(null, { useMasterKey: true }); } } exports.DocumentationConverter = DocumentationConverter;