diff --git a/modules/blogs/middlewares/query.js b/modules/blogs/middlewares/query.js index a63cbdf..47bf7a5 100644 --- a/modules/blogs/middlewares/query.js +++ b/modules/blogs/middlewares/query.js @@ -1,19 +1,44 @@ const User = require("../../users/models/user"); -const Blogs = require("../models/Blogs") +const Blogs = require("../models/Blogs"); +const Categories = require("../models/Categories"); exports.getBlogs = async function(){ return await Blogs.findAll({ - include: User + include: [User, Categories] }); }; exports.getBlogsWithUsername = async function({username}){ return await Blogs.findAll({ - include:{ + include:[Categories, { model: User, where: { username: username } - } + }] + }); +}; + +exports.getBlogsWithCategory = async function({categoryId, categoryTitle}){ + return await Blogs.findAll({ + include: [User, Categories, { + model: Categories, + where: [(categoryId) && { + id: categoryId + }, (categoryTitle) && { + title: categoryTitle + }] + }] + }); +}; + + +// CATE +exports.getCategoryWithParams = async function({categoryId, categoryTitle}){ + return await Categories.findOne({ + where:[ + (categoryId) ? {id: categoryId} : {}, + (categoryTitle) ? {title: categoryTitle} : {} + ] }); }; \ No newline at end of file diff --git a/modules/blogs/routes/get.js b/modules/blogs/routes/get.js index f6c9218..096d0e4 100644 --- a/modules/blogs/routes/get.js +++ b/modules/blogs/routes/get.js @@ -1,12 +1,16 @@ const express = require("express"); const auth = require("../../logins/middlewares/auth"); -const { getBlogs, getBlogsWithUsername } = require("../middlewares/query"); +const { getBlogs, getBlogsWithUsername, getBlogsWithCategory } = require("../middlewares/query"); const router = express(); router.get("/get/blogs/all", auth, async function (req, res) { res.json(await getBlogs()); }); +router.get("/get/blogs/:cate", auth, async function(req, res) { + res.json(await getBlogsWithCategory({categoryId: req.params.cate})); +}); + router.get("/get/blogs/user/:username", auth, async function (req, res) { res.json(await getBlogsWithUsername({ username: req.params.username diff --git a/modules/blogs/routes/page.js b/modules/blogs/routes/page.js index bf06f94..b4a956f 100644 --- a/modules/blogs/routes/page.js +++ b/modules/blogs/routes/page.js @@ -1,11 +1,21 @@ const express = require("express"); const auth = require("../../logins/middlewares/auth"); const Categories = require("../models/Categories"); +const { getBlogsWithCategory, getCategoryWithParams, getBlogs } = require("../middlewares/query"); const router = express(); router.get("/page/blogs", auth, async function(req, res) { res.json({ - categories: await Categories.findAll() + categories: await Categories.findAll(), + blogs: await getBlogs() + }); +}); + +router.get("/page/blogs/:cate", auth, async function(req, res) { + res.json({ + categories: await Categories.findAll(), + blogs: await getBlogsWithCategory({categoryTitle: req.params.cate}), + currentCategory: await getCategoryWithParams({categoryTitle: req.params.cate}) }); }); diff --git a/modules/users/routes/home.js b/modules/users/routes/home.js index fe913bf..805d2e9 100644 --- a/modules/users/routes/home.js +++ b/modules/users/routes/home.js @@ -7,6 +7,12 @@ router.get("/get/peoples", auth, async (req, res) => { res.json(await getUsers({myUserId: req.session.user.id})); }); +router.get("/get/user/my", auth, async (req, res) => { + res.json({ + username: req.session.user.username + }); +}); + router.get("/get/user/:username", async (req, res) => { res.json(await getUserWithUsername({username: req.params.username})) })