Kategori ve Kaydetme hakkında yenilikler yapıldı. Yeni React kodlarına uyum sağlandı.
This commit is contained in:
parent
a88dc25ef4
commit
5202ace0be
@ -1,5 +1,6 @@
|
||||
const Blogs = require("../modules/blogs/models/Blogs");
|
||||
const Categories = require("../modules/blogs/models/Categories");
|
||||
const SavedBlogs = require("../modules/blogs/models/SavedBlogs");
|
||||
const Login = require("../modules/logins/models/login");
|
||||
const User = require("../modules/users/models/user");
|
||||
|
||||
@ -27,6 +28,22 @@ Categories.hasMany(Blogs, {
|
||||
});
|
||||
Blogs.belongsTo(Categories);
|
||||
|
||||
Blogs.hasMany(SavedBlogs, {
|
||||
foreignKey:{
|
||||
allowNull: false,
|
||||
unique: false
|
||||
}
|
||||
});
|
||||
SavedBlogs.belongsTo(Blogs);
|
||||
|
||||
User.hasMany(SavedBlogs, {
|
||||
foreignKey:{
|
||||
allowNull: false,
|
||||
unique: false
|
||||
}
|
||||
});
|
||||
SavedBlogs.belongsTo(User);
|
||||
|
||||
exports.createTesting = async function(){
|
||||
const resultLogins = await Login.findAll();
|
||||
if(resultLogins.length == 0){
|
||||
|
||||
@ -3,10 +3,12 @@ const app = express();
|
||||
|
||||
// ROUTES
|
||||
const routerGet = require("./routes/get");
|
||||
const routerPost = require("./routes/post");
|
||||
const routerPage = require("./routes/page");
|
||||
|
||||
// USES
|
||||
app.use(routerGet);
|
||||
app.use(routerPost);
|
||||
app.use(routerPage);
|
||||
|
||||
module.exports = app;
|
||||
32
modules/blogs/middlewares/post.js
Normal file
32
modules/blogs/middlewares/post.js
Normal file
@ -0,0 +1,32 @@
|
||||
const Blogs = require("../models/Blogs");
|
||||
const SavedBlogs = require("../models/SavedBlogs");
|
||||
const { getSaved } = require("./query");
|
||||
const { checkLenText } = require("./tools");
|
||||
|
||||
exports.createBlog = async function(data, user){
|
||||
const checkTitle = checkLenText(data.title, 5, 25);
|
||||
const checkText = checkLenText(data.text, 10, 1000);
|
||||
if(checkTitle && checkText){
|
||||
return await Blogs.create({
|
||||
title: data.title,
|
||||
text: data.text,
|
||||
categoryId: data.cate,
|
||||
userId: user.id
|
||||
});
|
||||
}else{
|
||||
return false;
|
||||
};
|
||||
};
|
||||
|
||||
exports.createSaved = async function({blogId, userId}){
|
||||
const checkQuery = await getSaved({blogId: blogId, userId: userId});
|
||||
|
||||
if(!checkQuery){
|
||||
return await SavedBlogs.create({
|
||||
blogId: blogId,
|
||||
userId: userId
|
||||
});
|
||||
}else{
|
||||
return false;
|
||||
};
|
||||
};
|
||||
@ -1,10 +1,12 @@
|
||||
const User = require("../../users/models/user");
|
||||
const Blogs = require("../models/Blogs");
|
||||
const Categories = require("../models/Categories");
|
||||
const SavedBlogs = require("../models/SavedBlogs");
|
||||
|
||||
exports.getBlogs = async function(){
|
||||
return await Blogs.findAll({
|
||||
include: [User, Categories]
|
||||
include: [User, Categories],
|
||||
order: [["createdAt", "DESC"]]
|
||||
});
|
||||
};
|
||||
|
||||
@ -15,7 +17,8 @@ exports.getBlogsWithUsername = async function({username}){
|
||||
where: {
|
||||
username: username
|
||||
}
|
||||
}]
|
||||
}],
|
||||
order: [["createdAt", "DESC"]]
|
||||
});
|
||||
};
|
||||
|
||||
@ -28,7 +31,8 @@ exports.getBlogsWithCategory = async function({categoryId, categoryTitle}){
|
||||
}, (categoryTitle) && {
|
||||
title: categoryTitle
|
||||
}]
|
||||
}]
|
||||
}],
|
||||
order: [["createdAt", "DESC"]]
|
||||
});
|
||||
};
|
||||
|
||||
@ -41,4 +45,15 @@ exports.getCategoryWithParams = async function({categoryId, categoryTitle}){
|
||||
(categoryTitle) ? {title: categoryTitle} : {}
|
||||
]
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// SAVED
|
||||
exports.getSaved = async function({userId, blogId}){
|
||||
return await SavedBlogs.findOne({
|
||||
where:{
|
||||
userId: userId,
|
||||
blogId: blogId
|
||||
}
|
||||
});
|
||||
};
|
||||
3
modules/blogs/middlewares/tools.js
Normal file
3
modules/blogs/middlewares/tools.js
Normal file
@ -0,0 +1,3 @@
|
||||
exports.checkLenText = function(text, minLen, maxLen){
|
||||
return (text.length >= minLen && text.length <= maxLen) && true;
|
||||
};
|
||||
3
modules/blogs/models/SavedBlogs.js
Normal file
3
modules/blogs/models/SavedBlogs.js
Normal file
@ -0,0 +1,3 @@
|
||||
const Database = require("../../../database/db");
|
||||
|
||||
module.exports = Database.define("savedBlogs",{});
|
||||
@ -1,6 +1,7 @@
|
||||
const express = require("express");
|
||||
const auth = require("../../logins/middlewares/auth");
|
||||
const { getBlogs, getBlogsWithUsername, getBlogsWithCategory } = require("../middlewares/query");
|
||||
const Categories = require("../models/Categories");
|
||||
const router = express();
|
||||
|
||||
router.get("/get/blogs/all", auth, async function (req, res) {
|
||||
@ -17,4 +18,7 @@ router.get("/get/blogs/user/:username", auth, async function (req, res) {
|
||||
}));
|
||||
});
|
||||
|
||||
router.get("/get/blogs/cate/all", async function(req, res) {
|
||||
res.json(await Categories.findAll());
|
||||
});
|
||||
module.exports = router;
|
||||
25
modules/blogs/routes/post.js
Normal file
25
modules/blogs/routes/post.js
Normal file
@ -0,0 +1,25 @@
|
||||
const express = require("express");
|
||||
const auth = require("../../logins/middlewares/auth");
|
||||
const { createBlog, createSaved } = require("../middlewares/post");
|
||||
const { getSaved } = require("../middlewares/query");
|
||||
const router = express();
|
||||
|
||||
router.post("/post/blogs/create", auth, async function(req, res) {
|
||||
try {
|
||||
const result = await createBlog(req.body, req.session.user);
|
||||
if(result){
|
||||
return res.json({Status: "Success", Message: "Başarıyla paylaşıldı.", Ico: "/icons/success.svg"});
|
||||
}else{
|
||||
return res.json({Status: "Failed", Message: "Bir hatadan dolayı paylaşılamadı", Ico: "/icons/failed.svg"});
|
||||
}
|
||||
} catch (error) {
|
||||
return res.json({Status: "Failed", Message: "Bir hatadan dolayı paylaşılamadı", Ico: "/icons/failed.svg"});
|
||||
};
|
||||
});
|
||||
|
||||
router.post("/post/blogs/save", auth, async function(req, res) {
|
||||
const result = await createSaved({userId: req.session.user.id, blogId: req.body.blogId});
|
||||
return (result) && res.json({Status: "Success"});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Loading…
Reference in New Issue
Block a user