const express = require("express"); const auth = require("../../logins/middlewares/auth"); const { getBlogs, getBlogsWithUsername, getBlogsWithCategory, getBlogsWithFollows, getBlogsForDiscover, getBlogsForDiscoverWithCategory, getBlogsForFollowsWithCategory, getBlog, getBlogsWithUserId } = require("../middlewares/query"); const Categories = require("../models/Categories"); const { getUserWithUsername } = require("../../users/middlewares/query"); const router = express(); router.get("/get/blogs/all", auth, async function (req, res) { res.json(await getBlogs({myUserId: req.session.user.id})); }); router.get("/get/blogs/follows", auth, async function(req, res){ const blogIds = (req.query.blogIds) && req.query.blogIds.split(","); res.json(await getBlogsWithFollows({ userId: req.session.user.id, blogIds: blogIds, endDate: req.query.endDate })); }); router.get("/get/blogs/discover", auth, async function(req, res){ const blogIds = (req.query.blogIds) && req.query.blogIds.split(","); res.json(await getBlogsForDiscover({ userId: req.session.user.id, blogIds: blogIds, endDate: req.query.endDate })); }); router.get("/get/blogs/discover/:category", auth, async function(req, res){ const blogIds = (req.query.blogIds) && req.query.blogIds.split(","); res.json(await getBlogsForDiscoverWithCategory({ userId: req.session.user.id, category: req.params.category, blogIds: blogIds, endDate: req.query.endDate })); }); router.get("/get/blogs/:cate", auth, async function(req, res) { const blogIds = (req.query.blogIds) && req.query.blogIds.split(","); res.json(await getBlogsForFollowsWithCategory({ category: req.params.cate, userId: req.session.user.id, blogIds: blogIds, endDate: req.query.endDate })); }); router.get("/get/blogs/user/:username", auth, async function (req, res) { const blogIds = (req.query.blogIds) && req.query.blogIds.split(","); res.json(await getBlogsWithUserId({ userId: await getUserWithUsername({username: req.params.username}).then(get => get.id), myUserId: req.session.user.id, endDate: (req.query.endDate) ?? false, blogIds: blogIds })); }); router.get("/get/blogs/user/:username/:category", auth, async function (req, res) { const blogIds = (req.query.blogIds) && req.query.blogIds.split(","); res.json(await getBlogsWithUserId({ userId: await getUserWithUsername({username: req.params.username}).then(get => get.id), category: req.params.category, myUserId: req.session.user.id, endDate: (req.query.endDate) ?? false, blogIds: blogIds })); }); router.get("/get/blogs/cate/all", async function(req, res) { res.json(await Categories.findAll()); }); router.get("/get/blog/:blogId", auth, async function(req, res){ res.json(await getBlog({ blogId: req.params.blogId, myUserId: req.session.user.id })); }); module.exports = router;