diff --git a/controllers/apps/createApp.js b/controllers/apps/createApp.js index 361e77e..5f4adba 100644 --- a/controllers/apps/createApp.js +++ b/controllers/apps/createApp.js @@ -9,7 +9,7 @@ const createApp = asyncWrapper(async (req, res, next) => { const { pinAppsByDefault } = await loadConfig(); let app; - let _body = { ...req.body }; + let _body = { ...req.body, icon: req.body.icon.trim() }; if (req.file) { _body.icon = req.file.filename; diff --git a/controllers/apps/updateApp.js b/controllers/apps/updateApp.js index 2a996fb..290e4ef 100644 --- a/controllers/apps/updateApp.js +++ b/controllers/apps/updateApp.js @@ -20,6 +20,10 @@ const updateApp = asyncWrapper(async (req, res, next) => { let _body = { ...req.body }; + if (_body.icon) { + _body.icon = _body.icon.trim(); + } + if (req.file) { _body.icon = req.file.filename; } diff --git a/controllers/bookmarks/createBookmark.js b/controllers/bookmarks/createBookmark.js index 2292c50..7bf6a01 100644 --- a/controllers/bookmarks/createBookmark.js +++ b/controllers/bookmarks/createBookmark.js @@ -12,6 +12,10 @@ const createBookmark = asyncWrapper(async (req, res, next) => { categoryId: parseInt(req.body.categoryId), }; + if (_body.icon) { + _body.icon = _body.icon.trim(); + } + if (req.file) { _body.icon = req.file.filename; } diff --git a/controllers/bookmarks/updateBookmark.js b/controllers/bookmarks/updateBookmark.js index 778d2eb..2899364 100644 --- a/controllers/bookmarks/updateBookmark.js +++ b/controllers/bookmarks/updateBookmark.js @@ -24,6 +24,10 @@ const updateBookmark = asyncWrapper(async (req, res, next) => { categoryId: parseInt(req.body.categoryId), }; + if (_body.icon) { + _body.icon = _body.icon.trim(); + } + if (req.file) { _body.icon = req.file.filename; } diff --git a/controllers/categories/getAllCategories.js b/controllers/categories/getAllCategories.js index 935ee44..c42db2d 100644 --- a/controllers/categories/getAllCategories.js +++ b/controllers/categories/getAllCategories.js @@ -11,6 +11,7 @@ const getAllCategories = asyncWrapper(async (req, res, next) => { const { useOrdering: orderType } = await loadConfig(); let categories; + let output; // categories visibility const where = req.isAuthenticated ? {} : { isPublic: true }; @@ -21,7 +22,6 @@ const getAllCategories = asyncWrapper(async (req, res, next) => { { model: Bookmark, as: 'bookmarks', - where, }, ], order: [[Sequelize.fn('lower', Sequelize.col('Category.name')), 'ASC']], @@ -33,7 +33,6 @@ const getAllCategories = asyncWrapper(async (req, res, next) => { { model: Bookmark, as: 'bookmarks', - where, }, ], order: [[orderType, 'ASC']], @@ -41,9 +40,20 @@ const getAllCategories = asyncWrapper(async (req, res, next) => { }); } + if (req.isAuthenticated) { + output = categories; + } else { + // filter out private bookmarks + output = categories.map((c) => c.get({ plain: true })); + output = output.map((c) => ({ + ...c, + bookmarks: c.bookmarks.filter((b) => b.isPublic), + })); + } + res.status(200).json({ success: true, - data: categories, + data: output, }); });