1- const express = require ( ' express' ) ;
1+ const express = require ( " express" ) ;
22const router = express . Router ( ) ;
3+ const mongoose = require ( "mongoose" ) ;
34
4- router . get ( '/' , ( req , res , next ) => {
5- res . status ( 200 ) . json ( {
6- message : 'Handling GET requests to /products'
5+ const Product = require ( "../models/product" ) ;
6+
7+ router . get ( "/" , ( req , res , next ) => {
8+ Product . find ( )
9+ . exec ( )
10+ . then ( docs => {
11+ console . log ( docs ) ;
12+ // if (docs.length >= 0) {
13+ res . status ( 200 ) . json ( docs ) ;
14+ // } else {
15+ // res.status(404).json({
16+ // message: 'No entries found'
17+ // });
18+ // }
19+ } )
20+ . catch ( err => {
21+ console . log ( err ) ;
22+ res . status ( 500 ) . json ( {
23+ error : err
24+ } ) ;
725 } ) ;
826} ) ;
927
10- router . post ( '/' , ( req , res , next ) => {
11- const product = {
12- name : req . body . name ,
13- price : req . body . price
14- } ;
15- res . status ( 201 ) . json ( {
16- message : 'Handling POST requests to /products' ,
17- createdProduct : product
28+ router . post ( "/" , ( req , res , next ) => {
29+ const product = new Product ( {
30+ _id : new mongoose . Types . ObjectId ( ) ,
31+ name : req . body . name ,
32+ price : req . body . price
33+ } ) ;
34+ product
35+ . save ( )
36+ . then ( result => {
37+ console . log ( result ) ;
38+ res . status ( 201 ) . json ( {
39+ message : "Handling POST requests to /products" ,
40+ createdProduct : result
41+ } ) ;
42+ } )
43+ . catch ( err => {
44+ console . log ( err ) ;
45+ res . status ( 500 ) . json ( {
46+ error : err
47+ } ) ;
1848 } ) ;
1949} ) ;
2050
21- router . get ( '/:productId' , ( req , res , next ) => {
22- const id = req . params . productId ;
23- if ( id === 'special' ) {
24- res . status ( 200 ) . json ( {
25- message : 'You discovered the special ID' ,
26- id : id
27- } ) ;
28- } else {
29- res . status ( 200 ) . json ( {
30- message : 'You passed an ID'
31- } ) ;
32- }
51+ router . get ( "/:productId" , ( req , res , next ) => {
52+ const id = req . params . productId ;
53+ Product . findById ( id )
54+ . exec ( )
55+ . then ( doc => {
56+ console . log ( "From database" , doc ) ;
57+ if ( doc ) {
58+ res . status ( 200 ) . json ( doc ) ;
59+ } else {
60+ res
61+ . status ( 404 )
62+ . json ( { message : "No valid entry found for provided ID" } ) ;
63+ }
64+ } )
65+ . catch ( err => {
66+ console . log ( err ) ;
67+ res . status ( 500 ) . json ( { error : err } ) ;
68+ } ) ;
3369} ) ;
3470
35- router . patch ( '/:productId' , ( req , res , next ) => {
36- res . status ( 200 ) . json ( {
37- message : 'Updated product!'
71+ router . patch ( "/:productId" , ( req , res , next ) => {
72+ const id = req . params . productId ;
73+ const updateOps = { } ;
74+ for ( const ops of req . body ) {
75+ updateOps [ ops . propName ] = ops . value ;
76+ }
77+ Product . update ( { _id : id } , { $set : updateOps } )
78+ . exec ( )
79+ . then ( result => {
80+ console . log ( result ) ;
81+ res . status ( 200 ) . json ( result ) ;
82+ } )
83+ . catch ( err => {
84+ console . log ( err ) ;
85+ res . status ( 500 ) . json ( {
86+ error : err
87+ } ) ;
3888 } ) ;
3989} ) ;
4090
41- router . delete ( '/:productId' , ( req , res , next ) => {
42- res . status ( 200 ) . json ( {
43- message : 'Deleted product!'
91+ router . delete ( "/:productId" , ( req , res , next ) => {
92+ const id = req . params . productId ;
93+ Product . remove ( { _id : id } )
94+ . exec ( )
95+ . then ( result => {
96+ res . status ( 200 ) . json ( result ) ;
97+ } )
98+ . catch ( err => {
99+ console . log ( err ) ;
100+ res . status ( 500 ) . json ( {
101+ error : err
102+ } ) ;
44103 } ) ;
45104} ) ;
46105
47- module . exports = router ;
106+ module . exports = router ;
0 commit comments