@@ -163,34 +163,40 @@ 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 ) ;
193
- return responder . send ( `Badge ${ request . params . badgeMAC } is not registered on the server.` ) ;
199
+ return responder . send ( `Badge ${ request . params . communicatorMAC } is not registered on the server.` ) ;
194
200
} ;
195
201
if ( ! ( "targetMAC" in request . body ) ) {
196
202
responder . status ( 400 ) ;
@@ -199,7 +205,7 @@ app.post('/badges/:badgeMAC/callTarget', (request, responder) => {
199
205
responder . status ( 404 ) ;
200
206
return responder . send ( `Badge ${ request . body [ "targetMAC" ] } is not registered on the server.` ) ;
201
207
} else {
202
- var initiator = activeBadges [ request . params . badgeMAC ] ;
208
+ var initiator = activeBadges [ request . params . communicatorMAC ] ;
203
209
var target = activeBadges [ request . body [ "targetMAC" ] ] ;
204
210
initiator . callRTP ( target . IP , 5200 ) ;
205
211
target . callRTP ( initiator . IP , 5200 ) ;
@@ -208,33 +214,47 @@ app.post('/badges/:badgeMAC/callTarget', (request, responder) => {
208
214
return responder . send ( [ true ] ) ;
209
215
} ) ;
210
216
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 ) ) {
217
+ app . post ( '/communicators/:communicatorMAC/user' , ( request , responder ) => {
218
+ if ( ! ( request . params . communicatorMAC in activeBadges ) ) {
219
219
responder . status ( 404 ) ;
220
- return responder . send ( `Badge ${ request . params . badgeMAC } is not registered on the server.` ) ;
220
+ return responder . send ( `Badge ${ request . params . communicatorMAC } is not registered on the server.` ) ;
221
221
} ;
222
222
if ( ( "userName" in request . body ) && ( "prettyName" in request . body ) ) {
223
- return responder . send ( activeBadges [ request . params . badgeMAC ] . externalCallback ( "login" , request . body ) ) ;
223
+ return responder . send ( activeBadges [ request . params . communicatorMAC ] . externalCallback ( "login" , request . body ) ) ;
224
224
} else {
225
225
responder . status ( 400 ) ;
226
226
return responder . send ( "Request body must contain string values userName and prettyName." ) ;
227
227
} ;
228
228
} ) ;
229
229
230
- app . delete ( '/badges/:badgeMAC /user' ) , ( request , responder ) => {
231
- if ( ! ( request . params . badgeMAC in activeBadges ) ) {
230
+ app . delete ( '/communicators/:communicatorMAC /user' ) , ( request , responder ) => {
231
+ if ( ! ( request . params . communicatorMAC in activeBadges ) ) {
232
232
responder . status ( 404 ) ;
233
- return responder . send ( `Badge ${ request . params . badgeMAC } is not registered on the server.` ) ;
233
+ return responder . send ( `Badge ${ request . params . communicatorMAC } is not registered on the server.` ) ;
234
234
} ;
235
- return responder . send ( activeBadges [ request . params . badgeMAC ] . externalCallback ( "logout" ) ) ;
235
+ return responder . send ( activeBadges [ request . params . communicatorMAC ] . externalCallback ( "logout" ) ) ;
236
236
} ;
237
237
238
+ /**
239
+ * This section deals with Group Management calls.
240
+ */
241
+ app . get ( '/groups' , ( request , responder ) => {
242
+ return responder . send ( [ "Not Implemented" ] ) ;
243
+ } ) ;
244
+
245
+ app . get ( '/groups/:userName' , ( request , responder ) => {
246
+ return responder . send ( [ "Not Implemented" ] ) ;
247
+ } ) ;
248
+
249
+ app . post ( '/groups/:groupName' , ( request , responder ) => {
250
+ return responder . send ( [ "Not Implemented" ] ) ;
251
+ } ) ;
252
+
253
+ app . delete ( 'groups/:groupName' , ( request , responder ) => {
254
+ return responder . send ( [ "Not Implemented" ] ) ;
255
+ } ) ;
256
+
257
+
238
258
/**
239
259
* This section deals with User Management calls.
240
260
*/
@@ -246,7 +266,34 @@ app.get('/users/:userName', (request, responder) => {
246
266
return responder . send ( [ "Not Implemented" ] ) ;
247
267
} ) ;
248
268
269
+ app . post ( '/users/:userName' , ( request , responder ) => {
270
+ return responder . send ( [ "Not Implemented" ] ) ;
271
+ } ) ;
249
272
273
+ app . delete ( '/users/:userName' , ( request , responder ) => {
274
+ return responder . send ( [ "Not Implemented" ] ) ;
275
+ } ) ;
276
+
277
+ /**
278
+ * Maybe return a 300-series temporary redirect here, to point people at the right badge object?
279
+ */
280
+ app . get ( '/users/:userName/communicators/:communicatorMAC' , ( request , responder ) => {
281
+ return responder . send ( [ "Not Implemented" ] ) ;
282
+ } ) ;
283
+
284
+ /**
285
+ * How do you refer an object to another object in a REST api? Need to research correct style.
286
+ */
287
+ app . post ( '/users/:userName/communicators/:communicatorMAC' , ( request , responder ) => {
288
+ return responder . send ( [ "Not Implemented" ] ) ;
289
+ } ) ;
290
+
291
+ /**
292
+ * This at least is relatively straightforward - remove the MAC from the user object and logout the corresponding devices.
293
+ */
294
+ app . delete ( '/users/:userName/communicators/:communicatorMAC' , ( request , responder ) => {
295
+ return responder . send ( [ "Not Implemented" ] ) ;
296
+ } ) ;
250
297
251
298
app . listen ( apiPort , ( ) =>
252
299
console . log ( `Combadge control REST API now active on TCP port ${ apiPort } !` ) ,
0 commit comments