Skip to content

Commit b68e56a

Browse files
Mahima SharmaMahima Sharma
authored andcommitted
post controllers added
1 parent 8314ae8 commit b68e56a

File tree

4 files changed

+101
-51
lines changed

4 files changed

+101
-51
lines changed

‎controllers/post.controller.js‎

Lines changed: 91 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,70 +4,119 @@ const Posts = db.posts;
44
const Op = db.Sequelize.op;
55

66
const createPost = async (req, res) => {
7-
if (!req.body.title) {
8-
res.status(400).send({
9-
message: "Post title cannot be empty"
7+
try{
8+
const { title, subtitle, body, author_id } = req.body;
9+
if (!req.body.title) {
10+
res.status(400).send({
11+
message: "Post title cannot be empty"
12+
});
13+
return;
14+
}
15+
if (!req.body.body) {
16+
res.status(400).send({
17+
message: "Post body cannot be empty"
18+
});
19+
return;
20+
}
21+
const newpost = await db.sequelize.query(
22+
`INSERT INTO Posts (title,subtitle,body,author_id,createdAt,updatedAt,updated_at) values ('${title}','${subtitle}','${body}',${author_id},CURDATE(),CURDATE(),CURDATE())`, {
23+
type: db.sequelize.QueryTypes.INSERT
1024
});
11-
return;
12-
}
13-
if (!req.body.body) {
14-
res.status(400).send({
15-
message: "Post body cannot be empty"
25+
res.send({
26+
id: newpost[0],
27+
title,
28+
subtitle,
29+
body,
30+
author_id,
1631
});
17-
return;
1832
}
19-
const newpost = await db.sequelize.query(
20-
`INSERT INTO Post (title,subtitle,body,author,category_id,updated_at) values ('${req.body.title}','${req.body.subtitle}','${req.body.body}','${req.body.author_id}',datetime('now'))`
21-
, {
22-
replacements: { id: req.user.id },
23-
type: db.sequelize.QueryTypes.INSERT
24-
});
25-
if(newpost){
26-
res.status(200).json({
27-
status:200,
28-
message: "Post created successfully",
29-
post : newpost
33+
catch(e){
34+
res.status(500).send({
35+
message: e.message
3036
})
3137
}
3238
}
3339

34-
const updatePostByID = (req, res) => {
40+
const updatePostByID = async (req, res) => {
41+
try{
42+
const { title, subtitle, body, author_id } = req.body;
43+
const { id } = req.params;
44+
45+
const sql = `UPDATE posts
46+
SET title = '${title}',
47+
subtitle = '${subtitle}',
48+
body = '${body}',
49+
author_id = ${author_id},
50+
updatedAt = CURDATE(),
51+
updated_at = CURDATE()
52+
WHERE id = ${id};`
53+
54+
const result = await db.sequelize.query(sql, {
55+
type: db.sequelize.QueryTypes.UPDATE
56+
})
57+
res.send({
58+
id: result[0],
59+
title,
60+
subtitle,
61+
body,
62+
author_id,
63+
});
64+
}
65+
catch(e){
66+
res.status(500).send({
67+
message: e.message
68+
})
69+
}
3570

3671
}
3772

38-
const deletePostById = (req, res) => {
39-
73+
const deletePostById = async (req, res) => {
74+
try{
75+
const {id} = req.params;
76+
const sql = `DELETE from posts where id=${id}`;
77+
const result = await db.sequelize.query(sql,{
78+
type: db.sequelize.QueryTypes.DELETE
79+
})
80+
res.send({
81+
message: "Deleted Successfully"
82+
});
83+
return;
84+
}
85+
catch(e){
86+
res.status(500).send({
87+
message: e.message
88+
})
89+
}
4090
}
4191

4292
const getAllPosts = async (req, res) => {
43-
const posts = await db.sequelize.query(`SELECT * from Post`);
44-
if(posts){
45-
res.status(200).json({
46-
status:200,
47-
message: "Posts retrieved successfully",
48-
posts : posts
49-
})
93+
try{
94+
const posts = await db.sequelize.query(`SELECT * from Posts`, {
95+
type: db.sequelize.QueryTypes.SELECT
96+
});
97+
res.send(posts);
5098
}
51-
else{
99+
catch(e){
52100
res.status(500).send({
53-
message: "Server error"
101+
message: e.message
54102
})
55103
}
56104
}
57105

58106
const getPostById = async (req, res) => {
59-
const id = req.params.id;
60-
const selectedPost = await db.sequelize.query(`SELECT * from Post where id='${id}'`);
61-
if(selectedPost){
62-
res.status(200).json({
63-
status:200,
64-
message: "Post retrieved successfully",
65-
post : selectedPost
66-
})
107+
try{
108+
const id = req.params.id;
109+
const selectedPost = await db.sequelize.query(`SELECT * from Posts where id=${id}`, {
110+
type: db.sequelize.QueryTypes.SELECT
111+
});
112+
res.send({
113+
...selectedPost[0]
114+
});
115+
return res;
67116
}
68-
else{
117+
catch(e){
69118
res.status(500).send({
70-
message: "Server error"
119+
message: e.message
71120
})
72121
}
73122
}

‎models/post.model.js‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ const Posts = (sequelize, Sequelize) => {
66

77
const Post = sequelize.define("post", {
88
id: {
9-
type: DataTypes.STRING,
9+
type: DataTypes.INTEGER,
10+
autoIncrement: true,
1011
allowNull: false,
11-
primaryKey: true,
12+
primaryKey: true
1213
},
1314
title: {
1415
type: DataTypes.STRING,
@@ -24,7 +25,7 @@ const Posts = (sequelize, Sequelize) => {
2425
},
2526
author_id: {
2627
type: DataTypes.STRING,
27-
allowNull: false
28+
allowNull: true
2829
},
2930
updated_at: {
3031
type: DataTypes.DATEONLY,

‎routes/post.routes.js‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ const postRouter = app => {
55
var router = express.Router();
66

77
//get all posts
8-
router.get("/", postController.getAllPosts);
8+
app.get("/posts", postController.getAllPosts);
99

1010
//create post
11-
router.post("/", postController.createPost);
11+
app.post("/posts", postController.createPost);
1212

1313
//update post
14-
router.put("/:id", postController.updatePostByID);
14+
app.put("/posts/:id", postController.updatePostByID);
1515

1616
//delete post
17-
router.delete("/:id", postController.deletePostById);
17+
app.delete("/posts/:id", postController.deletePostById);
1818

1919
//get post by id
20-
router.get("/:id", postController.getPostById);
20+
app.get("/posts/:id", postController.getPostById);
2121

2222
app.use("/posts",router);
2323
}

‎server.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ var corsOptions = {
1616
app.use(cors(corsOptions));
1717

1818
const db = models;
19-
db.sequelize.sync({ force: true })
19+
db.sequelize.sync()
2020
.then(() => {
2121
console.log("Synced db.");
2222
})

0 commit comments

Comments
 (0)