@@ -20,15 +20,15 @@ pub(crate) async fn app_default(req: HttpRequest) -> impl Responder {
20
20
http:: Method :: GET => {
21
21
error = 400 ;
22
22
message = format ! (
23
- "Not Implemented: Use /version or /{API_VERSION}/ interfaces"
23
+ "Not Implemented: Use /version or /{API_VERSION} interfaces"
24
24
) ;
25
25
response = HttpResponse :: BadRequest ( )
26
26
. json ( JsonWrapper :: error ( error, & message) ) ;
27
27
}
28
28
http:: Method :: POST => {
29
29
error = 400 ;
30
30
message =
31
- format ! ( "Not Implemented: Use /{API_VERSION}/ interface" ) ;
31
+ format ! ( "Not Implemented: Use /{API_VERSION} interface" ) ;
32
32
response = HttpResponse :: BadRequest ( )
33
33
. json ( JsonWrapper :: error ( error, & message) ) ;
34
34
}
@@ -62,14 +62,15 @@ pub(crate) async fn api_default(req: HttpRequest) -> impl Responder {
62
62
match req. head ( ) . method {
63
63
http:: Method :: GET => {
64
64
error = 400 ;
65
- message = "Not Implemented: Use /keys/ or /quotes/ interfaces" ;
65
+ message =
66
+ "Not Implemented: Use /agent, /keys, or /quotes interfaces" ;
66
67
response = HttpResponse :: BadRequest ( )
67
68
. json ( JsonWrapper :: error ( error, message) ) ;
68
69
}
69
70
http:: Method :: POST => {
70
71
error = 400 ;
71
72
message =
72
- "Not Implemented: Use /keys/ or /notifications/ interfaces" ;
73
+ "Not Implemented: Use /keys or /notifications interfaces" ;
73
74
response = HttpResponse :: BadRequest ( )
74
75
. json ( JsonWrapper :: error ( error, message) ) ;
75
76
}
@@ -103,19 +104,19 @@ pub(crate) async fn keys_default(req: HttpRequest) -> impl Responder {
103
104
match req. head ( ) . method {
104
105
http:: Method :: GET => {
105
106
error = 400 ;
106
- message = "URI not supported, only /pubkey and /verify are supported for GET in /keys/ interface" ;
107
+ message = "URI not supported, only /pubkey and /verify are supported for GET in /keys interface" ;
107
108
response = HttpResponse :: BadRequest ( )
108
109
. json ( JsonWrapper :: error ( error, message) ) ;
109
110
}
110
111
http:: Method :: POST => {
111
112
error = 400 ;
112
- message = "URI not supported, only /ukey and /vkey are supported for POST in /keys/ interface" ;
113
+ message = "URI not supported, only /ukey and /vkey are supported for POST in /keys interface" ;
113
114
response = HttpResponse :: BadRequest ( )
114
115
. json ( JsonWrapper :: error ( error, message) ) ;
115
116
}
116
117
_ => {
117
118
error = 405 ;
118
- message = "Method is not supported in /keys/ interface" ;
119
+ message = "Method is not supported in /keys interface" ;
119
120
response = HttpResponse :: MethodNotAllowed ( )
120
121
. insert_header ( http:: header:: Allow ( vec ! [
121
122
http:: Method :: GET ,
@@ -166,6 +167,37 @@ pub(crate) async fn quotes_default(req: HttpRequest) -> impl Responder {
166
167
response
167
168
}
168
169
170
+ pub ( crate ) async fn agent_default ( req : HttpRequest ) -> impl Responder {
171
+ let error;
172
+ let response;
173
+ let message;
174
+
175
+ match req. head ( ) . method {
176
+ http:: Method :: GET => {
177
+ error = 400 ;
178
+ message = "URI not supported, only /info is supported for GET in /agent interface" ;
179
+ response = HttpResponse :: BadRequest ( )
180
+ . json ( JsonWrapper :: error ( error, message) ) ;
181
+ }
182
+ _ => {
183
+ error = 405 ;
184
+ message = "Method is not supported in /agent interface" ;
185
+ response = HttpResponse :: MethodNotAllowed ( )
186
+ . insert_header ( http:: header:: Allow ( vec ! [ http:: Method :: GET ] ) )
187
+ . json ( JsonWrapper :: error ( error, message) ) ;
188
+ }
189
+ } ;
190
+
191
+ warn ! (
192
+ "{} returning {} response. {}" ,
193
+ req. head( ) . method,
194
+ error,
195
+ message
196
+ ) ;
197
+
198
+ response
199
+ }
200
+
169
201
pub ( crate ) async fn notifications_default (
170
202
req : HttpRequest ,
171
203
) -> impl Responder {
@@ -343,6 +375,11 @@ mod tests {
343
375
. await
344
376
}
345
377
378
+ #[ actix_rt:: test]
379
+ async fn test_agent_default ( ) {
380
+ test_default ( web:: resource ( "/" ) . to ( agent_default) , "GET" ) . await
381
+ }
382
+
346
383
#[ derive( Serialize , Deserialize ) ]
347
384
struct DummyQuery {
348
385
param : String ,
@@ -395,10 +432,10 @@ mod tests {
395
432
. error_handler ( path_parser_error) ,
396
433
)
397
434
. service (
398
- web:: resource ( "/v2.1 /ok" ) . route ( web:: get ( ) . to ( dummy) ) ,
435
+ web:: resource ( "/v2.2 /ok" ) . route ( web:: get ( ) . to ( dummy) ) ,
399
436
)
400
437
. service (
401
- web:: resource ( "/v2.1 /ok/{number}/{string}" )
438
+ web:: resource ( "/v2.2 /ok/{number}/{string}" )
402
439
. route ( web:: get ( ) . to ( dummy_with_path) ) ,
403
440
)
404
441
. service (
@@ -410,7 +447,7 @@ mod tests {
410
447
411
448
// Sanity well formed request
412
449
let req = test:: TestRequest :: get ( )
413
- . uri ( "/v2.1 /ok?param=Test" )
450
+ . uri ( "/v2.2 /ok?param=Test" )
414
451
. set_json ( & DummyPayload { field : 42 } )
415
452
. to_request ( ) ;
416
453
@@ -432,7 +469,7 @@ mod tests {
432
469
433
470
// Test JSON parsing error
434
471
let req = test:: TestRequest :: get ( )
435
- . uri ( "/v2.1 /ok?param=Test" )
472
+ . uri ( "/v2.2 /ok?param=Test" )
436
473
. insert_header ( http:: header:: ContentType :: json ( ) )
437
474
. set_payload ( "Not JSON" )
438
475
. to_request ( ) ;
@@ -445,7 +482,7 @@ mod tests {
445
482
446
483
// Test Query parsing error
447
484
let req = test:: TestRequest :: get ( )
448
- . uri ( "/v2.1 /ok?test=query" )
485
+ . uri ( "/v2.2 /ok?test=query" )
449
486
. set_json ( & DummyPayload { field : 42 } )
450
487
. to_request ( ) ;
451
488
let resp = test:: call_service ( & app, req) . await ;
@@ -457,7 +494,7 @@ mod tests {
457
494
458
495
// Test Path parsing error
459
496
let req = test:: TestRequest :: get ( )
460
- . uri ( "/v2.1 /ok/something/42?test=query" )
497
+ . uri ( "/v2.2 /ok/something/42?test=query" )
461
498
. set_json ( & DummyPayload { field : 42 } )
462
499
. to_request ( ) ;
463
500
let resp = test:: call_service ( & app, req) . await ;
0 commit comments