diff --git a/database/dump.js b/database/dump.js index 4ff2e64..4cb328c 100644 --- a/database/dump.js +++ b/database/dump.js @@ -1,3 +1,4 @@ +const Blogs = require("../modules/blogs/models/Blogs"); const Login = require("../modules/logins/models/login"); const User = require("../modules/logins/models/user"); @@ -9,6 +10,14 @@ User.hasMany(Login, { }); Login.belongsTo(User); +User.hasMany(Blogs, { + foreignKey:{ + allowNull: false, + unique: false + } +}); +Blogs.belongsTo(User); + exports.createTesting = async function(){ const resultLogins = await Login.findAll(); if(resultLogins.length == 0){ @@ -26,5 +35,16 @@ exports.createTesting = async function(){ userId: 1 }]); + await Blogs.bulkCreate([{ + id: 1, + title: "Bu Bir Başlıktır", + text: "Merhaba, bu benim yazımdır.", + userId: 1 + },{ + id: 2, + text: "Merhaba, bu benim yazımdır.", + userId: 1 + }]) + }; }; \ No newline at end of file diff --git a/modules/blogs/app.js b/modules/blogs/app.js index 8e52113..5f89d1e 100644 --- a/modules/blogs/app.js +++ b/modules/blogs/app.js @@ -1,12 +1,10 @@ const express = require("express"); const app = express(); -app.get("/get/blogs", async function(req, res){ - res.json([{ - id: 1, - title: "Başlık", - text: "İçerik" - }]); -}); +// ROUTES +const routerGet = require("./routes/get"); + +// USES +app.use(routerGet); module.exports = app; \ No newline at end of file diff --git a/modules/blogs/middlewares/query.js b/modules/blogs/middlewares/query.js new file mode 100644 index 0000000..8d6b69c --- /dev/null +++ b/modules/blogs/middlewares/query.js @@ -0,0 +1,19 @@ +const User = require("../../logins/models/user"); +const Blogs = require("../models/Blogs") + +exports.getBlogs = async function(){ + return await Blogs.findAll({ + include: User + }); +}; + +exports.getBlogsWithUsername = async function({username}){ + return await Blogs.findAll({ + include:{ + model: User, + where: { + username: username + } + } + }); +}; \ No newline at end of file diff --git a/modules/blogs/models/Blogs.js b/modules/blogs/models/Blogs.js new file mode 100644 index 0000000..3fe1ad7 --- /dev/null +++ b/modules/blogs/models/Blogs.js @@ -0,0 +1,15 @@ +const { DataTypes } = require("sequelize"); +const Database = require("../../../database/db"); + +module.exports = Database.define("blogs", { + title: { + type: DataTypes.CHAR(70), + unique: false, + allowNull: true + }, + text: { + type: DataTypes.TEXT, + unique: false, + allowNull: false + } +}); \ No newline at end of file diff --git a/modules/blogs/routes/get.js b/modules/blogs/routes/get.js new file mode 100644 index 0000000..f6c9218 --- /dev/null +++ b/modules/blogs/routes/get.js @@ -0,0 +1,16 @@ +const express = require("express"); +const auth = require("../../logins/middlewares/auth"); +const { getBlogs, getBlogsWithUsername } = require("../middlewares/query"); +const router = express(); + +router.get("/get/blogs/all", auth, async function (req, res) { + res.json(await getBlogs()); +}); + +router.get("/get/blogs/user/:username", auth, async function (req, res) { + res.json(await getBlogsWithUsername({ + username: req.params.username + })); +}); + +module.exports = router; \ No newline at end of file diff --git a/modules/logins/middlewares/login/query.js b/modules/logins/middlewares/login/query.js index b8053ff..eda8023 100644 --- a/modules/logins/middlewares/login/query.js +++ b/modules/logins/middlewares/login/query.js @@ -7,7 +7,8 @@ exports.getLogin = async function({password, email = null, username = null}){ where:{ email: email, password: password - } + }, + include: User }); return result; }; \ No newline at end of file diff --git a/modules/logins/routes/home.js b/modules/logins/routes/home.js index fae3f47..d483a45 100644 --- a/modules/logins/routes/home.js +++ b/modules/logins/routes/home.js @@ -25,6 +25,8 @@ router.post('/login', async (req, res) => { if(result){ req.session.isAuth = true; + console.log(Object.keys(result)); + req.session.user = result.user; res.json({Status: "Success", Token: req.sessionID}); }else{ res.json({Status: "Failed"}); diff --git a/modules/users/middlewares/query.js b/modules/users/middlewares/query.js new file mode 100644 index 0000000..483e53f --- /dev/null +++ b/modules/users/middlewares/query.js @@ -0,0 +1,13 @@ +const User = require("../../logins/models/user") + +exports.getUsers = async function(){ + return await User.findAll(); +}; + +exports.getUserWithUsername = async function({username}){ + return await User.findOne({ + where:{ + username: username + } + }); +}; \ No newline at end of file diff --git a/modules/users/routes/home.js b/modules/users/routes/home.js index b35903f..fe913bf 100644 --- a/modules/users/routes/home.js +++ b/modules/users/routes/home.js @@ -1,17 +1,14 @@ const express = require("express"); const auth = require("../../logins/middlewares/auth"); +const { getUsers, getUserWithUsername } = require("../middlewares/query"); const router = express(); -router.get("/get/peoples", auth, (req, res) => { - res.json([{ - id: 1, name: "Batuhan", surname: "Coşkun" - },{ - id: 2, name: "Anders", surname: "İsaksson" - },{ - id: 3, name: "Noah", surname: "İsaksson" - },{ - id: 4, name: "Julia", surname: "İsaksson" - }]); +router.get("/get/peoples", auth, async (req, res) => { + res.json(await getUsers({myUserId: req.session.user.id})); }); +router.get("/get/user/:username", async (req, res) => { + res.json(await getUserWithUsername({username: req.params.username})) +}) + module.exports = router; \ No newline at end of file