@@ -163,43 +163,54 @@ app.use(express.json());
163
163
* API calls for managing the system. Style note: follow whole-parent ordering instead of whole method ordering. E.G.
164
164
*
165
165
* get /
166
- * get /badges /
167
- * get /badges /badge
168
- * del /badges /badge
169
- * get /badges /badge/callTarget
170
- * pst /badges /badge/callTarget
171
- * del /badges /badge/callTarget
172
- * pst /badges /badge/user
166
+ * get /communicators /
167
+ * get /communicators /badge
168
+ * del /communicators /badge
169
+ * get /communicators /badge/callTarget
170
+ * pst /communicators /badge/callTarget
171
+ * del /communicators /badge/callTarget
172
+ * pst /communicators /badge/user
173
173
* get /users/
174
174
*/
175
175
app . get ( '/' , ( request , responder ) => {
176
- return responder . send ( [ "badges" , "users" ] ) ;
176
+ return responder . send ( [ "badges" , "groups" , "terminals" , " users"] ) ;
177
177
} ) ;
178
178
179
179
/**
180
180
* This section deals with Combadge calls.
181
181
*/
182
- app . get ( '/badges ' , ( request , responder ) => {
182
+ app . get ( '/communicators ' , ( request , responder ) => {
183
183
return responder . send ( Object . keys ( activeBadges ) ) ;
184
184
} ) ;
185
185
186
- app . get ( '/badges/:badgeMAC ' , ( request , responder ) => {
187
- return responder . send ( activeBadges [ request . params . badgeMAC ] ) ;
186
+ app . get ( '/communicators/:communicatorMAC ' , ( request , responder ) => {
187
+ return responder . send ( activeBadges [ request . params . communicatorMAC ] ) ;
188
188
} ) ;
189
189
190
- app . post ( '/badges/:badgeMAC/callTarget' , ( request , responder ) => {
191
- if ( ! ( request . params . badgeMAC in activeBadges ) ) {
190
+ app . delete ( '/communicators/:communicatorMAC' , ( request , responder ) => {
191
+ return responder . send ( function ( ) {
192
+ delete activeBadges [ request . params . communicatorMAC ]
193
+ } ) ;
194
+ } ) ;
195
+
196
+ app . post ( '/communicators/:communicatorMAC/callTarget' , ( request , responder ) => {
197
+ if ( ! ( request . params . communicatorMAC in activeBadges ) ) {
192
198
responder . status ( 404 ) ;
199
+ < << << << HEAD
193
200
return responder . send ( `Badge ${ request . params . badgeMAC } is not registered on the server.` ) ;
194
201
}
202
+ = === ===
203
+ return responder . send ( `Badge ${ request . params . communicatorMAC } is not registered on the server.` ) ;
204
+ } ;
205
+ >>> > >>> 4 cc513d ( Bit of structuring , plus genericising "communicator" instead of "badge" . )
195
206
if ( ! ( "targetMAC" in request . body ) ) {
196
207
responder . status ( 400 ) ;
197
208
return responder . send ( "Request body must be either empty or contain string values userName and prettyName." ) ;
198
209
} else if ( ! ( request . body [ "targetMAC" ] in activeBadges ) ) {
199
210
responder . status ( 404 ) ;
200
211
return responder . send ( `Badge ${ request . body [ "targetMAC" ] } is not registered on the server.` ) ;
201
212
} else {
202
- var initiator = activeBadges [ request . params . badgeMAC ] ;
213
+ var initiator = activeBadges [ request . params . communicatorMAC ] ;
203
214
var target = activeBadges [ request . body [ "targetMAC" ] ] ;
204
215
initiator . callRTP ( target . IP , 5200 ) ;
205
216
target . callRTP ( initiator . IP , 5200 ) ;
@@ -208,33 +219,47 @@ app.post('/badges/:badgeMAC/callTarget', (request, responder) => {
208
219
return responder . send ( [ true ] ) ;
209
220
} ) ;
210
221
211
- app . delete ( '/badges/:badgeMAC' , ( request , responder ) => {
212
- return responder . send ( function ( ) {
213
- delete activeBadges [ request . params . badgeMAC ]
214
- } ) ;
215
- } ) ;
216
-
217
- app . post ( '/badges/:badgeMAC/user' , ( request , responder ) => {
218
- if ( ! ( request . params . badgeMAC in activeBadges ) ) {
222
+ app . post ( '/communicators/:communicatorMAC/user' , ( request , responder ) => {
223
+ if ( ! ( request . params . communicatorMAC in activeBadges ) ) {
219
224
responder . status ( 404 ) ;
220
- return responder . send ( `Badge ${ request . params . badgeMAC } is not registered on the server.` ) ;
225
+ return responder . send ( `Badge ${ request . params . communicatorMAC } is not registered on the server.` ) ;
221
226
} ;
222
227
if ( ( "userName" in request . body ) && ( "prettyName" in request . body ) ) {
223
- return responder . send ( activeBadges [ request . params . badgeMAC ] . externalCallback ( "login" , request . body ) ) ;
228
+ return responder . send ( activeBadges [ request . params . communicatorMAC ] . externalCallback ( "login" , request . body ) ) ;
224
229
} else {
225
230
responder . status ( 400 ) ;
226
231
return responder . send ( "Request body must contain string values userName and prettyName." ) ;
227
232
} ;
228
233
} ) ;
229
234
230
- app . delete ( '/badges/:badgeMAC /user' ) , ( request , responder ) => {
231
- if ( ! ( request . params . badgeMAC in activeBadges ) ) {
235
+ app . delete ( '/communicators/:communicatorMAC /user' ) , ( request , responder ) => {
236
+ if ( ! ( request . params . communicatorMAC in activeBadges ) ) {
232
237
responder . status ( 404 ) ;
233
- return responder . send ( `Badge ${ request . params . badgeMAC } is not registered on the server.` ) ;
238
+ return responder . send ( `Badge ${ request . params . communicatorMAC } is not registered on the server.` ) ;
234
239
} ;
235
- return responder . send ( activeBadges [ request . params . badgeMAC ] . externalCallback ( "logout" ) ) ;
240
+ return responder . send ( activeBadges [ request . params . communicatorMAC ] . externalCallback ( "logout" ) ) ;
236
241
} ;
237
242
243
+ /**
244
+ * This section deals with Group Management calls.
245
+ */
246
+ app . get ( '/groups' , ( request , responder ) => {
247
+ return responder . send ( [ "Not Implemented" ] ) ;
248
+ } ) ;
249
+
250
+ app . get ( '/groups/:userName' , ( request , responder ) => {
251
+ return responder . send ( [ "Not Implemented" ] ) ;
252
+ } ) ;
253
+
254
+ app . post ( '/groups/:groupName' , ( request , responder ) => {
255
+ return responder . send ( [ "Not Implemented" ] ) ;
256
+ } ) ;
257
+
258
+ app . delete ( 'groups/:groupName' , ( request , responder ) => {
259
+ return responder . send ( [ "Not Implemented" ] ) ;
260
+ } ) ;
261
+
262
+
238
263
/**
239
264
* This section deals with User Management calls.
240
265
*/
@@ -246,7 +271,34 @@ app.get('/users/:userName', (request, responder) => {
246
271
return responder . send ( [ "Not Implemented" ] ) ;
247
272
} ) ;
248
273
274
+ app . post ( '/users/:userName' , ( request , responder ) => {
275
+ return responder . send ( [ "Not Implemented" ] ) ;
276
+ } ) ;
277
+
278
+ app . delete ( '/users/:userName' , ( request , responder ) => {
279
+ return responder . send ( [ "Not Implemented" ] ) ;
280
+ } ) ;
281
+
282
+ /**
283
+ * Maybe return a 300-series temporary redirect here, to point people at the right badge object?
284
+ */
285
+ app . get ( '/users/:userName/communicators/:communicatorMAC' , ( request , responder ) => {
286
+ return responder . send ( [ "Not Implemented" ] ) ;
287
+ } ) ;
288
+
289
+ /**
290
+ * How do you refer an object to another object in a REST api? Need to research correct style.
291
+ */
292
+ app . post ( '/users/:userName/communicators/:communicatorMAC' , ( request , responder ) => {
293
+ return responder . send ( [ "Not Implemented" ] ) ;
294
+ } ) ;
249
295
296
+ /**
297
+ * This at least is relatively straightforward - remove the MAC from the user object and logout the corresponding devices.
298
+ */
299
+ app . delete ( '/users/:userName/communicators/:communicatorMAC' , ( request , responder ) => {
300
+ return responder . send ( [ "Not Implemented" ] ) ;
301
+ } ) ;
250
302
251
303
app . listen ( apiPort , ( ) =>
252
304
console . log ( `Combadge control REST API now active on TCP port ${ apiPort } !` ) ,
0 commit comments