1
1
import express from 'express' ;
2
- import jwt from 'jsonwebtoken' ;
3
2
import async from 'async' ;
4
3
import ResponseTemplate from '../../global/templates/response' ;
5
4
import {
6
5
logger ,
7
6
} from '../../../log' ;
8
7
import Blog from '../../models/blog' ;
9
- import config from '../../../config' ;
10
8
11
9
const router = express . Router ( ) ;
12
10
@@ -28,77 +26,69 @@ router.get('/', (req, res) => {
28
26
} ) ) ;
29
27
}
30
28
} ) ;
31
- // Blog.find({}, null, { limit: perPage, skip: (pageNo - 1) * perPage }, (err, blogs) => {
32
- // if (err) {
33
- // logger.error(err);
34
- // res.json(ResponseTemplate.error(401, 'Error while fetching the blogs'));
35
- // } else {
36
- // res.json(ResponseTemplate.success('Blog fetched successfully', { blogs }));
37
- // }
38
- // });
39
- } ) ;
40
-
41
- router . post ( '/' , ( req , res ) => {
42
- const {
43
- data,
44
- } = req . body ;
45
-
46
- jwt . verify ( data . token , config . app . WEB_TOKEN_SECRET , ( err , decoded ) => {
47
- if ( err ) {
48
- res . json ( ResponseTemplate . error ( 401 , 'Invalid User' ) ) ;
49
- } else {
50
- const blog = new Blog ( ) ;
51
- blog . userId = decoded . user . _id ;
52
- blog . blogTitle = data . title ;
53
- blog . blogContent = data . content ;
54
- blog . save ( ( error ) => {
55
- if ( error ) {
56
- logger . error ( err ) ;
57
- res . json ( ResponseTemplate . error ( 401 , 'Some error occured while saving the blog' ) ) ;
58
- } else {
59
- res . json ( ResponseTemplate . success ( 'Blog created Successfully' ) ) ;
60
- }
61
- } ) ;
62
- }
63
- } ) ;
64
29
} ) ;
65
30
66
31
router . get ( '/:id' , ( req , res ) => {
67
32
Blog . findById ( req . params . id )
68
33
. populate ( 'userId' )
34
+ . populate ( 'comments.userId' )
69
35
. exec ( ( err , blog ) => {
70
36
if ( err ) {
71
37
logger . error ( err ) ;
72
- res . json ( {
73
- success : false ,
74
- err,
75
- } ) ;
38
+ res . json ( ResponseTemplate . error ( 'Some Error Occured' ) ) ;
76
39
} else {
77
- res . json ( {
78
- success : true ,
79
- data : {
80
- blog,
81
- } ,
82
- } ) ;
40
+ res . json ( ResponseTemplate . success ( 'Blog Fetched Successfully' , { blog } ) ) ;
83
41
}
84
42
} ) ;
85
43
} ) ;
86
44
45
+ router . post ( '/' , ( req , res ) => {
46
+ const {
47
+ data,
48
+ } = req . body ;
49
+
50
+ const blog = new Blog ( ) ;
51
+ blog . userId = req . user . _id ;
52
+ blog . blogTitle = data . title ;
53
+ blog . blogContent = data . content ;
54
+ blog . save ( ( error ) => {
55
+ if ( error ) {
56
+ logger . error ( error ) ;
57
+ res . json ( ResponseTemplate . error ( 401 , 'Some error occured while saving the blog' ) ) ;
58
+ } else {
59
+ res . json ( ResponseTemplate . success ( 'Blog created Successfully' ) ) ;
60
+ }
61
+ } ) ;
62
+ } ) ;
63
+
87
64
router . put ( '/:id' , ( req , res ) => {
88
- console . log ( req . user ) ;
89
65
const task = [
90
66
( callback ) => {
91
- Blog . findByIdAndUpdate ( req . params . id , {
92
- $push : {
93
- likes : {
94
- userId : req . user . _id ,
95
- } ,
67
+ Blog . findOneAndUpdate ( { _id : req . params . id , 'likes.userId' : req . user . _id } , {
68
+ $inc : {
69
+ 'likes.$.count' : 1 ,
96
70
} ,
97
- } , ( err , result ) => {
71
+ } , { new : true } , ( err , result ) => {
98
72
if ( err ) {
99
73
return callback ( err , null ) ;
100
74
}
101
- return callback ( null , result ) ;
75
+ if ( result == null ) {
76
+ Blog . findByIdAndUpdate ( req . params . id , {
77
+ $push : {
78
+ likes : {
79
+ count : 1 ,
80
+ userId : req . user . _id ,
81
+ } ,
82
+ } ,
83
+ } , { new : true } , ( error , newResult ) => {
84
+ if ( error ) {
85
+ return callback ( err , null ) ;
86
+ }
87
+ return callback ( null , newResult ) ;
88
+ } ) ;
89
+ } else {
90
+ return callback ( null , result ) ;
91
+ }
102
92
} ) ;
103
93
} ,
104
94
] ;
@@ -112,7 +102,7 @@ router.put('/:id', (req, res) => {
112
102
userId : req . user . _id ,
113
103
} ,
114
104
} ,
115
- } , ( err , result ) => {
105
+ } , { new : true } , ( err , result ) => {
116
106
if ( err ) {
117
107
return callback ( err , null ) ;
118
108
}
@@ -139,10 +129,12 @@ router.put('/:id', (req, res) => {
139
129
success : false ,
140
130
err,
141
131
} ) ;
132
+ } else if ( req . query . action === 'LIKE' ) {
133
+ res . json ( ResponseTemplate . success ( 'Content Liked' , { result } ) ) ;
134
+ } else if ( req . query . action === 'COMMENT' ) {
135
+ res . json ( ResponseTemplate . success ( 'COMMENTED SUCCESSFULLY' , { result } ) ) ;
142
136
} else {
143
- res . json ( {
144
- result,
145
- } ) ;
137
+ res . json ( ResponseTemplate . success ( 'Unknown action' , null ) ) ;
146
138
}
147
139
} ) ;
148
140
} ) ;
0 commit comments