1
1
const express = require ( 'express' )
2
2
const routers = express . Router ( ) ;
3
+ const client = require ( './connection' )
4
+ const ObjectId = require ( 'mongodb' ) . ObjectId
3
5
4
6
const multer = require ( 'multer' )
5
7
const imageFilter = ( req , file , cb ) => {
@@ -31,8 +33,6 @@ routers.post('/register', upload.single('avatar'), (req, res) => {
31
33
res . send ( { name : name , avatar : avatar } )
32
34
} )
33
35
34
-
35
-
36
36
// req semua method
37
37
routers . all ( '/universal' , function ( req , res ) {
38
38
res . send ( 'request dengan method ' + req . method )
@@ -51,7 +51,143 @@ routers.get('/foods', (req, res) => {
51
51
res . end ( ) ;
52
52
} ) ;
53
53
54
+ // Route Products
55
+
56
+ routers . get ( '/products' , async ( req , res ) => {
57
+ if ( client . isConnected ( ) ) {
58
+ const db = client . db ( 'latihan' )
59
+ const products = await db . collection ( "products" ) . find ( ) . toArray ( )
60
+ if ( products . length > 0 ) {
61
+ res . send ( {
62
+ status : 'success' ,
63
+ message : 'list products ditemukan' ,
64
+ data : products
65
+ } )
66
+ } else {
67
+ res . send ( {
68
+ status : 'success' ,
69
+ message : 'list products tidak ditemukan' ,
70
+ } )
71
+ }
72
+ } else {
73
+ res . send ( {
74
+ status : 'error' ,
75
+ message : 'koneksi database gagal'
76
+ } )
77
+ }
78
+ } )
79
+
80
+ routers . get ( '/products/:id' , async ( req , res ) => {
81
+ if ( client . isConnected ( ) ) {
82
+ const db = client . db ( "latihan" ) ;
83
+ const productId = await db . collection ( "products" ) . findOne ( {
84
+ _id : ObjectId ( req . params . id )
85
+ } )
86
+ res . send ( {
87
+ status : "success" ,
88
+ message : "single products" ,
89
+ data : productId
90
+ } )
91
+ } else {
92
+ res . send ( {
93
+ status : "error" ,
94
+ message : "Koneksi Database Gagal"
95
+ } )
96
+ }
97
+ } )
98
+
99
+ routers . post ( '/products' , multer ( ) . none ( ) , async ( req , res ) => {
100
+ if ( client . isConnected ( ) ) {
101
+ const { name, price, stock, status } = req . body
102
+ const db = client . db ( 'latihan' )
103
+
104
+ const result = await db . collection ( 'products' ) . insertOne ( {
105
+ name : name ,
106
+ price : price ,
107
+ stock : stock ,
108
+ status : status
109
+ } )
110
+
111
+ if ( result . insertedCount == 1 ) {
112
+ res . send ( {
113
+ status : "success" ,
114
+ message : "add products success" ,
115
+ } )
116
+ } else {
117
+ res . send ( {
118
+ status : 'warning' ,
119
+ message : 'tambah product gagal' ,
120
+ } )
121
+ }
122
+ } else {
123
+ res . send ( {
124
+ status : "error" ,
125
+ message : "Koneksi Database Gagal"
126
+ } )
127
+ }
128
+ } )
129
+
130
+ routers . put ( '/products/:id' , multer ( ) . none ( ) , async ( req , res ) => {
131
+ if ( client . isConnected ( ) ) {
132
+ const { name, price, stock, status } = req . body
133
+ const db = client . db ( 'latihan' )
134
+
135
+ const result = await db . collection ( 'products' ) . updateOne (
136
+ { _id : ObjectId ( req . params . id ) } ,
137
+ {
138
+ $set : {
139
+ name : name ,
140
+ price : price ,
141
+ stock : stock ,
142
+ status : status
143
+ } ,
144
+ }
145
+ )
146
+
147
+ if ( result . matchedCount == 1 ) {
148
+ res . send ( {
149
+ status : "success" ,
150
+ message : "update products success" ,
151
+ } )
152
+ } else {
153
+ res . send ( {
154
+ status : 'warning' ,
155
+ message : 'update product gagal' ,
156
+ } )
157
+ }
158
+ } else {
159
+ res . send ( {
160
+ status : "error" ,
161
+ message : "Koneksi Database Gagal"
162
+ } )
163
+ }
164
+ } )
165
+
166
+ routers . delete ( '/products/:id' , multer ( ) . none ( ) , async ( req , res ) => {
167
+ if ( client . isConnected ( ) ) {
168
+ const db = client . db ( 'latihan' )
169
+ const result = await db . collection ( 'products' ) . deleteOne (
170
+ { _id : ObjectId ( req . params . id ) } ,
171
+ )
172
+
173
+ if ( result . deletedCount == 1 ) {
174
+ res . send ( {
175
+ status : "success" ,
176
+ message : "delete products success" ,
177
+ } )
178
+ } else {
179
+ res . send ( {
180
+ status : 'warning' ,
181
+ message : 'delete product gagal' ,
182
+ } )
183
+ }
184
+ } else {
185
+ res . send ( {
186
+ status : "error" ,
187
+ message : "Koneksi Database Gagal"
188
+ } )
189
+ }
190
+ } )
54
191
55
- // kode routing lainnya
56
192
57
193
module . exports = routers
0 commit comments