From c26b753c66ff5f7f827ddbbc18a1c474ae425d7a Mon Sep 17 00:00:00 2001 From: Nikita Melnikov Date: Sun, 2 Oct 2022 12:54:27 +0800 Subject: [PATCH] fix yet another bug --- src/backend/controllers/pages.ts | 2 +- src/backend/controllers/pagesOrder.ts | 6 +++--- src/backend/routes/api/pages.ts | 7 ++++--- src/backend/utils/twig.ts | 4 ++++ src/backend/views/pages/form.twig | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/backend/controllers/pages.ts b/src/backend/controllers/pages.ts index ecd1157..cd49266 100644 --- a/src/backend/controllers/pages.ts +++ b/src/backend/controllers/pages.ts @@ -202,7 +202,7 @@ class Pages { * @param {PageData} data - info about page * @returns {Promise} */ - public static async update(id: string, data: PageData): Promise { + public static async update(id: EntityId, data: PageData): Promise { const page = await Page.get(id); const previousUri = page.uri; diff --git a/src/backend/controllers/pagesOrder.ts b/src/backend/controllers/pagesOrder.ts index 3b7e111..4682b93 100644 --- a/src/backend/controllers/pagesOrder.ts +++ b/src/backend/controllers/pagesOrder.ts @@ -2,6 +2,7 @@ import PageOrder from '../models/pageOrder.js'; import Page from '../models/page.js'; import PagesFlatArray from '../models/pagesFlatArray.js'; import { EntityId } from '../utils/database/types.js'; +import {isEqualIds} from "../utils/database/index.js"; /** * @class PagesOrder @@ -99,8 +100,7 @@ class PagesOrder { */ public static async getOrderedChildren(pages: Page[], currentPageId: EntityId, parentPageId: EntityId, ignoreSelf = false): Promise { const children = await PageOrder.get(parentPageId); - console.log({children}) - const unordered = pages.filter(page => page._parent === parentPageId).map(page => page._id); + const unordered = pages.filter(page => isEqualIds(page._parent, parentPageId)).map(page => page._id); // Create unique array with ordered and unordered pages id const ordered = Array.from(new Set([...children.order, ...unordered])); @@ -109,7 +109,7 @@ class PagesOrder { ordered.forEach(pageId => { pages.forEach(page => { - if (page._id === pageId && (pageId !== currentPageId || !ignoreSelf)) { + if (isEqualIds(page._id, pageId) && (!isEqualIds(pageId, currentPageId) || !ignoreSelf)) { result.push(page); } }); diff --git a/src/backend/routes/api/pages.ts b/src/backend/routes/api/pages.ts index f521614..7931cd2 100644 --- a/src/backend/routes/api/pages.ts +++ b/src/backend/routes/api/pages.ts @@ -3,6 +3,7 @@ import multerFunc from 'multer'; import Pages from '../../controllers/pages.js'; import PagesOrder from '../../controllers/pagesOrder.js'; import { EntityId } from '../../utils/database/types.js'; +import {toEntityId} from "../../utils/database/index.js"; const router = express.Router(); const multer = multerFunc(); @@ -15,7 +16,7 @@ const multer = multerFunc(); router.get('/page/:id', async (req: Request, res: Response) => { try { - const page = await Pages.get(req.params.id); + const page = await Pages.get(toEntityId(req.params.id)); res.json({ success: true, @@ -89,7 +90,7 @@ router.put('/page', multer.none(), async (req: Request, res: Response) => { * Update page data in the database */ router.post('/page/:id', multer.none(), async (req: Request, res: Response) => { - const { id } = req.params; + const id = toEntityId(req.params.id); try { const { title, body, parent, putAbovePageId, uri } = req.body; @@ -147,7 +148,7 @@ router.post('/page/:id', multer.none(), async (req: Request, res: Response) => { */ router.delete('/page/:id', async (req: Request, res: Response) => { try { - const pageId = req.params.id; + const pageId = toEntityId(req.params.id); const page = await Pages.get(pageId); if (page._id === undefined) { diff --git a/src/backend/utils/twig.ts b/src/backend/utils/twig.ts index 0cf2925..05434e0 100644 --- a/src/backend/utils/twig.ts +++ b/src/backend/utils/twig.ts @@ -54,4 +54,8 @@ export default (function () { return ''; } }); + + twig.extendFilter('json_stringify', function (data: any): string { + return JSON.stringify(data); + }) }()); diff --git a/src/backend/views/pages/form.twig b/src/backend/views/pages/form.twig index 6f55824..e9fdc01 100644 --- a/src/backend/views/pages/form.twig +++ b/src/backend/views/pages/form.twig @@ -9,7 +9,7 @@