@@ -60,24 +60,44 @@ app.post('/files', function(req, res) {fileDriver.handleUploadRequest(req, res);
60
60
app . get ( '/files/:id' , function ( req , res ) { fileDriver . handleGet ( req , res ) ; } ) ;
61
61
62
62
// The / is the base. The : means this HAS to be included AND means it's a placeholder for the actual path!. But putting a ? means it can or cannot be added with no problem.
63
- app . get ( '/:firstParameter' , function ( req , res ) { //A
64
- var params = req . params ; //B
65
- var query = req . query . query ; // req.query gets the whole "query" part at the end of the URL and adding .query indicates a query to be perform on this "query" part of the request
66
- if ( query ) {
67
- query = JSON . parse ( query ) ;
68
- collectionDriver . query ( req . params . firstParameter , query , returnCollectionResults ( req , res ) ) ;
69
- } else {
70
- collectionDriver . findAll ( req . params . firstParameter , returnCollectionResults ( req , res ) ) ;
71
- }
63
+
64
+ app . get ( '/:firstParameter/:secondParameter?/:thirdParameter?' , function ( req , res ) { //I
65
+ var params = req . params ;
66
+ var firstParameter = params . firstParameter ;
67
+ var secondParameter = params . secondParameter ;
68
+ var thirdParameter = params . thirdParameter
69
+ var query = req . query . query ; // req.query gets the whole "query" part at the end of the URL and adding .query indicates a query to be perform on this "query" part of the request
70
+ if ( firstParameter && ! secondParameter && ! thirdParameter ) {
71
+ if ( query ) {
72
+ query = JSON . parse ( query ) ;
73
+ collectionDriver . query ( req . params . firstParameter , query , returnCollectionResults ( params . firstParameter , req , res ) ) ;
74
+ } else {
75
+ collectionDriver . findAll ( req . params . firstParameter , returnCollectionResults ( params . firstParameter , req , res ) ) ;
76
+ }
77
+ } else if ( firstParameter && secondParameter && ! thirdParameter ) {
78
+ collectionDriver . get ( firstParameter , secondParameter , function ( error , objs ) { //J
79
+ if ( error ) { res . send ( 400 , error ) ; }
80
+ else { res . send ( 200 , objs ) ; } //K
81
+ } ) ;
82
+ } else if ( firstParameter && secondParameter && thirdParameter ) {
83
+ if ( query ) {
84
+ query = JSON . parse ( query ) ; // Isn't going in here and it's because I'm not giving the query correctly which I got to fix...
85
+ collectionDriver . query ( req . params . thirdParameter , query , returnCollectionResults ( firstParameter + '/' + secondParameter + '/' + thirdParameter , req , res ) ) ;
86
+ } else {
87
+ collectionDriver . findAll ( secondParameter + '/' + thirdParameter , returnCollectionResults ( firstParameter + '/' + secondParameter + '/' + thirdParameter , req , res ) ) ;
88
+ }
89
+ } else {
90
+ res . send ( 400 , { error : 'bad url' , url : req . url } ) ;
91
+ }
72
92
} ) ;
73
93
74
- function returnCollectionResults ( req , res ) {
94
+ function returnCollectionResults ( titleForTableDisplay , req , res ) {
75
95
return function ( error , objs ) { // 5
76
96
if ( error ) {
77
97
res . send ( 400 , error ) ; } //D
78
98
else {
79
99
if ( req . accepts ( 'html' ) ) { //E
80
- res . render ( 'data' , { objects : objs , collection : req . params . collection } ) ; //F //This is not ideal I want to see all the req params tbh
100
+ res . render ( 'data' , { objects : objs , collection : titleForTableDisplay } ) ; //F //This is not ideal I want to see all the req params tbh
81
101
} else {
82
102
res . set ( 'Content-Type' , 'application/json' ) ; //G
83
103
res . send ( 200 , objs ) ; //H
@@ -86,37 +106,14 @@ return function(error, objs) { // 5
86
106
} ;
87
107
} ;
88
108
89
- app . get ( '/:firstParameter/:secondParameter/:thirdParameter?' , function ( req , res ) { //I
90
- var params = req . params ;
91
- var firstParameter = params . firstParameter ;
92
- var secondParameter = params . secondParameter ;
93
- var thirdParameter = params . thirdParameter
94
- var query = req . query . query ; // req.query gets the whole "query" part at the end of the URL and adding .query indicates a query to be perform on this "query" part of the request
95
- var test = req . query ;
96
- if ( secondParameter && ! thirdParameter ) {
97
- collectionDriver . get ( firstParameter , secondParameter , function ( error , objs ) { //J
98
- if ( error ) { res . send ( 400 , error ) ; }
99
- else { res . send ( 200 , objs ) ; } //K
100
- } ) ;
101
- } else if ( thirdParameter ) {
102
- if ( query ) {
103
- query = JSON . parse ( query ) ; // Isn't going in here and it's because I'm not giving the query correctly which I got to fix...
104
- collectionDriver . query ( req . params . thirdParameter , query , returnCollectionResults ( req , res ) ) ;
105
- } else {
106
- collectionDriver . findAll ( req . params . thirdParameter , returnCollectionResults ( req , res ) ) ;
107
- }
108
- } else {
109
- res . send ( 400 , { error : 'bad url' , url : req . url } ) ;
110
- }
111
- } ) ;
112
-
113
109
//Post methods
114
110
app . post ( '/:firstParameter/:secondParameter?/:thirdParameter?' , function ( req , res ) { //A
115
111
var object = req . body ;
116
112
var firstParameter = req . params . firstParameter ;
113
+ var secondParameter = req . params . secondParameter ;
117
114
var thirdParameter = req . params . thirdParameter
118
115
if ( thirdParameter ) {
119
- collectionDriver . save ( thirdParameter , object , function ( err , docs ) {
116
+ collectionDriver . save ( secondParameter + '/' + thirdParameter , object , function ( err , docs ) {
120
117
if ( err ) { res . send ( 400 , err ) ; }
121
118
else {
122
119
res . send ( 201 , docs ) ; } //B
@@ -128,8 +125,8 @@ app.post('/:firstParameter/:secondParameter?/:thirdParameter?', function(req, re
128
125
} ) ;
129
126
}
130
127
} ) ;
131
- // Update method
132
128
129
+ // Update method
133
130
app . put ( '/:firstParameter/:secondParameter' , function ( req , res ) { //A
134
131
var params = req . params ;
135
132
var secondParameter = params . secondParameter ;
@@ -147,19 +144,26 @@ app.put('/:firstParameter/:secondParameter', function(req, res) { //A
147
144
148
145
// Delete method
149
146
150
- app . delete ( '/:firstParameter/:secondParameter' , function ( req , res ) { //A
151
- var params = req . params ;
152
- var secondParameter = params . secondParameter ;
153
- var firstParameter = params . firstParameter ;
154
- if ( secondParameter ) {
155
- collectionDriver . delete ( firstParameter , secondParameter , function ( error , objs ) { //B
156
- if ( error ) { res . send ( 400 , error ) ; }
157
- else { res . send ( 200 , objs ) ; } //C 200 b/c includes the original doc
158
- } ) ;
159
- } else {
160
- var error = { "message" : "Cannot DELETE a whole collection (firstParameter)" } ;
161
- res . send ( 400 , error ) ;
162
- }
147
+ app . delete ( '/:firstParameter/:secondParameter?/:thirdParameter?/:fourthParameter?' , function ( req , res ) { //A
148
+ var params = req . params ;
149
+ var firstParameter = params . firstParameter ;
150
+ var secondParameter = params . secondParameter ;
151
+ var thirdParameter = params . thirdParameter ;
152
+ var fourthParameter = params . fourthParameter ;
153
+ if ( secondParameter && ! fourthParameter ) {
154
+ collectionDriver . delete ( firstParameter , secondParameter , function ( error , objs ) { //B
155
+ if ( error ) { res . send ( 400 , error ) ; }
156
+ else { res . send ( 200 , objs ) ; } //C 200 b/c includes the original doc
157
+ } ) ;
158
+ } else if ( fourthParameter ) {
159
+ collectionDriver . delete ( secondParameter + '/' + thirdParameter , fourthParameter , function ( error , objects ) {
160
+ if error { res . send ( 400 , error ) ; }
161
+ else { res . send ( 200 , objects ) ; }
162
+ } ) ;
163
+ } else {
164
+ var error = { "message" : "Cannot DELETE a whole collection (firstParameter)" } ;
165
+ res . send ( 400 , error ) ;
166
+ }
163
167
} ) ;
164
168
//2
165
169
0 commit comments