97 lines
3.0 KiB
JavaScript
97 lines
3.0 KiB
JavaScript
|
const router = require('express').Router();
|
||
|
|
||
|
const { getResponse } = require('../../../utils/common');
|
||
|
const {
|
||
|
getTags,
|
||
|
connect,
|
||
|
findTags,
|
||
|
insertTag,
|
||
|
getCategories,
|
||
|
getTopicsByCategoryId,
|
||
|
getTopicById,
|
||
|
getCommentsByTopicId,
|
||
|
insertComment,
|
||
|
getCategoryByPath,
|
||
|
insertTopic,
|
||
|
} = require('../controllers');
|
||
|
|
||
|
connect();
|
||
|
|
||
|
router.get('/forum/topic-categories', async (req, res) => {
|
||
|
const errors = [];
|
||
|
const categories = await getCategories().catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, categories));
|
||
|
});
|
||
|
|
||
|
router.get('/forum/topic-categories/:groupId', async (req, res) => {
|
||
|
const errors = [];
|
||
|
const category = await getCategoryByPath(req.params.groupId).catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, category));
|
||
|
});
|
||
|
|
||
|
router.get('/forum/topic-comments/:topicId', async (req, res) => {
|
||
|
const errors = [];
|
||
|
const comments = await getCommentsByTopicId(req.params.topicId, req.query.page).catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, comments));
|
||
|
});
|
||
|
|
||
|
router.post('/forum/topic-comments', async (req, res) => {
|
||
|
const errors = [];
|
||
|
if (!req.body) {
|
||
|
errors.push('Bad request, no body');
|
||
|
res.send(getResponse(errors, undefined));
|
||
|
} else {
|
||
|
const comment = await insertComment(req.body).catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, comment));
|
||
|
}
|
||
|
});
|
||
|
|
||
|
router.get('/forum/topic-list/:id', async (req, res) => {
|
||
|
const errors = [];
|
||
|
const topics = await getTopicsByCategoryId(req.params.id, req.query.page).catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, topics));
|
||
|
});
|
||
|
|
||
|
router.get('/forum/topic/:id', async (req, res) => {
|
||
|
const errors = [];
|
||
|
const topic = await getTopicById(req.params.id).catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, topic));
|
||
|
});
|
||
|
|
||
|
router.post('/forum/topic', async (req, res) => {
|
||
|
const errors = [];
|
||
|
if (!req.body) {
|
||
|
errors.push('Bad request, no body');
|
||
|
res.send(getResponse(errors, undefined));
|
||
|
} else {
|
||
|
const topic = await insertTopic(req.body).catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, topic));
|
||
|
}
|
||
|
});
|
||
|
|
||
|
router.get('/forum/topic-tags', async (req, res) => {
|
||
|
const errors = [];
|
||
|
if (req.query.search !== undefined) {
|
||
|
const tags = await findTags(req.query.search).catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, tags));
|
||
|
} else {
|
||
|
const tags = await getTags().catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, tags));
|
||
|
}
|
||
|
});
|
||
|
|
||
|
router.post('/forum/topic-tags', async (req, res) => {
|
||
|
const errors = [];
|
||
|
const tags = await insertTag(req.body?.name).catch((e) => errors.push(e.message));
|
||
|
res.send(getResponse(errors, tags));
|
||
|
});
|
||
|
|
||
|
router.get('/forum/stub/:data', (request, response) => {
|
||
|
console.log(request.params);
|
||
|
process.env.stub = request.params.data;
|
||
|
|
||
|
response.sendStatus(200);
|
||
|
});
|
||
|
|
||
|
module.exports = router;
|