25 lines
1.2 KiB
JavaScript
25 lines
1.2 KiB
JavaScript
import express from "express";
|
|
import {requireLogin, requireAdmin} from "../middleware/auth.js";
|
|
|
|
export function createAdminMarketRouter(repositories) {
|
|
const router = express.Router();
|
|
router.get("/admin/reports", requireLogin, requireAdmin, (_req, res) => res.json({
|
|
reports: repositories.listMarketReports(),
|
|
personas: repositories.listMarketPersonas({admin: true, username: _req.session.user})
|
|
}));
|
|
router.post("/admin/reports/:id", requireLogin, requireAdmin, (req, res) => {
|
|
repositories.updateMarketReportStatus(Number(req.params.id), String(req.body?.status || "reviewed").trim() || "reviewed");
|
|
return res.json({message: "Report updated"});
|
|
});
|
|
router.post("/admin/personas/market/:id/moderate", requireLogin, requireAdmin, (req, res) => {
|
|
const status = String(req.body?.status || "approved").trim() || "approved";
|
|
repositories.updateMarketModeration(Number(req.params.id), {
|
|
status,
|
|
notes: req.body?.notes == null ? null : String(req.body.notes).trim() || null,
|
|
softDelete: Boolean(req.body?.softDelete)
|
|
});
|
|
return res.json({persona: repositories.getMarketPersona(Number(req.params.id))});
|
|
});
|
|
return router;
|
|
}
|