Skip to content

Commit 3f6948c

Browse files
feat: add mod reviews
1 parent eb0bad5 commit 3f6948c

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

art-gallery/app/controllers/art.controller.js

+35-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const gallery = async (req, res) => {
4343
limit = limit || 10;
4444
const count = await Art.countDocuments();
4545

46-
const arts = await Art.find({published: true})
46+
const arts = await Art.find({ published: true, reviewed: true })
4747
.populate({ path: "artist", select: "id name" })
4848
.populate("theme")
4949
.skip((page - 1) * limit)
@@ -438,6 +438,39 @@ const remove = async (req, res) => {
438438
}
439439
};
440440

441+
const review = async (req, res) => {
442+
try {
443+
const { slug } = req.params;
444+
if (!slug) {
445+
return res.status(400).json({
446+
status: "error",
447+
message: "Slug is required.",
448+
});
449+
}
450+
const art = await Art.findOne({ slug });
451+
if (!art) {
452+
return res.status(404).json({
453+
status: "error",
454+
message: "Art not found.",
455+
});
456+
}
457+
458+
art.reviewed = !art.reviewed;
459+
await art.save();
460+
461+
res.set('Content-Type', 'application/json');
462+
return res.status(200).json({
463+
status: "success",
464+
message: "Art reviewed successfully.",
465+
});
466+
} catch (e) {
467+
return res.status(500).json({
468+
status: "error",
469+
message: "Something went wrong.",
470+
});
471+
}
472+
};
473+
441474
const publish = async (req, res) => {
442475
try {
443476
const { slug } = req.params;
@@ -487,6 +520,7 @@ module.exports = {
487520
remove,
488521
like,
489522
publish,
523+
review,
490524
gallery,
491525
model,
492526
};

art-gallery/models/art.js

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ const ArtSchema = new Schema({
1919
type: Boolean,
2020
default: false,
2121
},
22+
reviewed: {
23+
type: Boolean,
24+
default: false,
25+
},
2226
slug: {
2327
type: String,
2428
required: true,

art-gallery/routes/art.routes.js

+3
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ const {
1313
like,
1414
remove,
1515
publish,
16+
review,
1617
gallery,
1718
model,
1819
} = require("../app/controllers/art.controller");
1920
const convertToWebP = require("../app/middlewares/converter.middleware");
21+
const { verify } = require("../app/middlewares/theme.middleware");
2022

2123
router.get("/user/:id", userArts);
2224
router.post(
@@ -45,6 +47,7 @@ router.post(
4547

4648
router.post("/like/:slug", getUser, like);
4749
router.post("/publish/:slug", getUser, publish);
50+
router.post("/review/:slug", verify, review);
4851

4952
router.get("/", index);
5053
router.get("/gallery", gallery);

0 commit comments

Comments
 (0)