@@ -10,106 +10,145 @@ import * as responses from "../../helpers/responses.handler";
10
10
import { ObjectId } from "mongodb" ;
11
11
12
12
const getCollection = ( ) => {
13
- return MongoHelper . client
14
- . db ( Config . DB_NAME )
15
- . collection ( Config . POST_COLLECTION_NAME ) ;
13
+ return MongoHelper . client
14
+ . db ( Config . DB_NAME )
15
+ . collection ( Config . POST_COLLECTION_NAME ) ;
16
16
} ;
17
17
18
18
export default class PostController {
19
- public addPost = async ( req : Request , res : Response ) : Promise < any > => {
20
- const requestData = req . body ;
21
- const collection = getCollection ( ) ;
22
- const post = new Post ( requestData ) ;
23
- try {
24
- await collection . insertOne ( post ) ;
25
-
26
- res
27
- . status ( httpStatus . CREATED )
28
- . send ( responses . success ( SuccessCodes . SUCCESSFULLY_DATA_ADDED ) ) ;
29
- res . end ( ) ;
30
- } catch ( e ) {
31
- console . error ( e . message ) ;
32
- res . send (
33
- responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
34
- ) ;
35
- }
36
- } ;
37
-
38
- public getPost = async ( req : Request , res : Response ) : Promise < any > => {
39
- const collection = getCollection ( ) ;
40
- const id = req . params . id ;
41
- try {
42
- const post = await collection . findOne ( {
43
- _id : new ObjectId ( id ) ,
44
- } ) ;
45
-
46
- res . send (
47
- responses . successWithPayload (
48
- SuccessCodes . SUCCESSFULLY_DATA_RETRIVED ,
49
- post
50
- )
51
- ) ;
52
- } catch ( e ) {
53
- console . error ( e . message ) ;
54
- res . send (
55
- responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
56
- ) ;
57
- }
58
- } ;
59
-
60
- public getAllPost = async ( req : Request , res : Response ) : Promise < any > => {
61
- const collection : any = getCollection ( ) ;
62
-
63
- try {
64
- const data = await collection . find ( ) . toArray ( ) ;
65
-
66
- res . send (
67
- responses . successWithPayload (
68
- SuccessCodes . SUCCESSFULLY_DATA_RETRIVED ,
69
- data
70
- )
71
- ) ;
72
- } catch ( e ) {
73
- console . error ( e . message ) ;
74
- res . send (
75
- responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
76
- ) ;
77
- }
78
- } ;
79
-
80
- public updatePost = async ( req : Request , res : Response ) : Promise < any > => {
81
- const { _id, userId, description, imageURL, createdDate, categoryName } =
82
- req . body ;
83
-
84
- const collection : any = getCollection ( ) ;
85
-
86
- try {
87
- await collection . findOneAndUpdate (
88
- { _id : new mongodb . ObjectId ( _id ) } ,
89
- { $set : { userId, description, imageURL, createdDate, categoryName } }
90
- ) ;
91
-
92
- res . send ( responses . success ( SuccessCodes . SUCCESSFULLY_DATA_UPDATED ) ) ;
93
- } catch ( e ) {
94
- console . error ( e . message ) ;
95
- res . send (
96
- responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
97
- ) ;
98
- }
99
- } ;
100
-
101
- public deletePost = async ( req : Request , res : Response ) : Promise < any > => {
102
- const id = req . params . id ;
103
- const collection : any = getCollection ( ) ;
104
-
105
- try {
106
- await collection . deleteOne ( { _id : new mongodb . ObjectId ( id ) } ) ;
107
- res . send ( responses . success ( SuccessCodes . SUCCESSFULLY_DATA_DELETED ) ) ;
108
- } catch ( e ) {
109
- console . error ( e . message ) ;
110
- res . send (
111
- responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
112
- ) ;
113
- }
114
- } ;
19
+ public addPost = async ( req : Request , res : Response ) : Promise < any > => {
20
+ const requestData = req . body ;
21
+ const collection = getCollection ( ) ;
22
+
23
+ requestData . createdDate = new Date ( ) . toString ( ) ;
24
+ const post = new Post ( requestData ) ;
25
+ try {
26
+ await collection . insertOne ( post ) ;
27
+
28
+ res
29
+ . status ( httpStatus . CREATED )
30
+ . send ( responses . success ( SuccessCodes . SUCCESSFULLY_DATA_ADDED ) ) ;
31
+ res . end ( ) ;
32
+ } catch ( e ) {
33
+ console . error ( e . message ) ;
34
+ res . send (
35
+ responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
36
+ ) ;
37
+ }
38
+ } ;
39
+
40
+ public getPost = async ( req : Request , res : Response ) : Promise < any > => {
41
+ const collection = getCollection ( ) ;
42
+ const id = req . params . id ;
43
+ try {
44
+ const post = await collection . findOne ( {
45
+ _id : new ObjectId ( id ) ,
46
+ } ) ;
47
+
48
+ res . send (
49
+ responses . successWithPayload (
50
+ SuccessCodes . SUCCESSFULLY_DATA_RETRIVED ,
51
+ post
52
+ )
53
+ ) ;
54
+ } catch ( e ) {
55
+ console . error ( e . message ) ;
56
+ res . send (
57
+ responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
58
+ ) ;
59
+ }
60
+ } ;
61
+
62
+ public getAllPost = async ( req : Request , res : Response ) : Promise < any > => {
63
+ const collection : any = getCollection ( ) ;
64
+
65
+ try {
66
+ const data = await collection . find ( ) . toArray ( ) ;
67
+
68
+ res . send (
69
+ responses . successWithPayload (
70
+ SuccessCodes . SUCCESSFULLY_DATA_RETRIVED ,
71
+ data
72
+ )
73
+ ) ;
74
+ } catch ( e ) {
75
+ console . error ( e . message ) ;
76
+ res . send (
77
+ responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
78
+ ) ;
79
+ }
80
+ } ;
81
+
82
+ public updatePost = async ( req : Request , res : Response ) : Promise < any > => {
83
+ const { _id, userId, description, imageURL, createdDate, categoryName } =
84
+ req . body ;
85
+
86
+ const collection : any = getCollection ( ) ;
87
+
88
+ try {
89
+ await collection . findOneAndUpdate (
90
+ { _id : new mongodb . ObjectId ( _id ) } ,
91
+ { $set : { userId, description, imageURL, createdDate, categoryName } }
92
+ ) ;
93
+
94
+ res . send ( responses . success ( SuccessCodes . SUCCESSFULLY_DATA_UPDATED ) ) ;
95
+ } catch ( e ) {
96
+ console . error ( e . message ) ;
97
+ res . send (
98
+ responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
99
+ ) ;
100
+ }
101
+ } ;
102
+
103
+ public deletePost = async ( req : Request , res : Response ) : Promise < any > => {
104
+ const id = req . params . id ;
105
+ const collection : any = getCollection ( ) ;
106
+
107
+ try {
108
+ await collection . deleteOne ( { _id : new mongodb . ObjectId ( id ) } ) ;
109
+ res . send ( responses . success ( SuccessCodes . SUCCESSFULLY_DATA_DELETED ) ) ;
110
+ } catch ( e ) {
111
+ console . error ( e . message ) ;
112
+ res . send (
113
+ responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
114
+ ) ;
115
+ }
116
+ } ;
117
+
118
+ public getAllPostsWithUsers = async (
119
+ req : Request ,
120
+ res : Response
121
+ ) : Promise < any > => {
122
+ try {
123
+ const collection = getCollection ( ) ;
124
+
125
+ const data = await collection
126
+ . aggregate ( [
127
+ {
128
+ $lookup : {
129
+ from : "user" ,
130
+ localField : "userId" ,
131
+ foreignField : "uid" ,
132
+ as : "user" ,
133
+ } ,
134
+ } ,
135
+ {
136
+ $unwind : "$user" ,
137
+ } ,
138
+ ] )
139
+ . toArray ( ) ;
140
+
141
+ res . send (
142
+ responses . successWithPayload (
143
+ SuccessCodes . SUCCESSFULLY_DATA_RETRIVED ,
144
+ data
145
+ )
146
+ ) ;
147
+ } catch ( e ) {
148
+ console . error ( e . message ) ;
149
+ res . send (
150
+ responses . failed ( ErrorCodes . INTERNAL_ERROR , httpStatus . BAD_REQUEST )
151
+ ) ;
152
+ }
153
+ } ;
115
154
}
0 commit comments