Trim icon name. Filter private bookmarks if user is not authenticated

This commit is contained in:
Paweł Malak 2021-11-12 13:09:33 +01:00
parent d94a6cea5a
commit 6281994be8
5 changed files with 26 additions and 4 deletions

View File

@ -9,7 +9,7 @@ const createApp = asyncWrapper(async (req, res, next) => {
const { pinAppsByDefault } = await loadConfig(); const { pinAppsByDefault } = await loadConfig();
let app; let app;
let _body = { ...req.body }; let _body = { ...req.body, icon: req.body.icon.trim() };
if (req.file) { if (req.file) {
_body.icon = req.file.filename; _body.icon = req.file.filename;

View File

@ -20,6 +20,10 @@ const updateApp = asyncWrapper(async (req, res, next) => {
let _body = { ...req.body }; let _body = { ...req.body };
if (_body.icon) {
_body.icon = _body.icon.trim();
}
if (req.file) { if (req.file) {
_body.icon = req.file.filename; _body.icon = req.file.filename;
} }

View File

@ -12,6 +12,10 @@ const createBookmark = asyncWrapper(async (req, res, next) => {
categoryId: parseInt(req.body.categoryId), categoryId: parseInt(req.body.categoryId),
}; };
if (_body.icon) {
_body.icon = _body.icon.trim();
}
if (req.file) { if (req.file) {
_body.icon = req.file.filename; _body.icon = req.file.filename;
} }

View File

@ -24,6 +24,10 @@ const updateBookmark = asyncWrapper(async (req, res, next) => {
categoryId: parseInt(req.body.categoryId), categoryId: parseInt(req.body.categoryId),
}; };
if (_body.icon) {
_body.icon = _body.icon.trim();
}
if (req.file) { if (req.file) {
_body.icon = req.file.filename; _body.icon = req.file.filename;
} }

View File

@ -11,6 +11,7 @@ const getAllCategories = asyncWrapper(async (req, res, next) => {
const { useOrdering: orderType } = await loadConfig(); const { useOrdering: orderType } = await loadConfig();
let categories; let categories;
let output;
// categories visibility // categories visibility
const where = req.isAuthenticated ? {} : { isPublic: true }; const where = req.isAuthenticated ? {} : { isPublic: true };
@ -21,7 +22,6 @@ const getAllCategories = asyncWrapper(async (req, res, next) => {
{ {
model: Bookmark, model: Bookmark,
as: 'bookmarks', as: 'bookmarks',
where,
}, },
], ],
order: [[Sequelize.fn('lower', Sequelize.col('Category.name')), 'ASC']], order: [[Sequelize.fn('lower', Sequelize.col('Category.name')), 'ASC']],
@ -33,7 +33,6 @@ const getAllCategories = asyncWrapper(async (req, res, next) => {
{ {
model: Bookmark, model: Bookmark,
as: 'bookmarks', as: 'bookmarks',
where,
}, },
], ],
order: [[orderType, 'ASC']], 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({ res.status(200).json({
success: true, success: true,
data: categories, data: output,
}); });
}); });