@@ -20,15 +20,15 @@ pub(crate) async fn app_default(req: HttpRequest) -> impl Responder {
2020 http:: Method :: GET => {
2121 error = 400 ;
2222 message = format ! (
23- "Not Implemented: Use /version or /{API_VERSION}/ interfaces"
23+ "Not Implemented: Use /version or /{API_VERSION} interfaces"
2424 ) ;
2525 response = HttpResponse :: BadRequest ( )
2626 . json ( JsonWrapper :: error ( error, & message) ) ;
2727 }
2828 http:: Method :: POST => {
2929 error = 400 ;
3030 message =
31- format ! ( "Not Implemented: Use /{API_VERSION}/ interface" ) ;
31+ format ! ( "Not Implemented: Use /{API_VERSION} interface" ) ;
3232 response = HttpResponse :: BadRequest ( )
3333 . json ( JsonWrapper :: error ( error, & message) ) ;
3434 }
@@ -62,14 +62,15 @@ pub(crate) async fn api_default(req: HttpRequest) -> impl Responder {
6262 match req. head ( ) . method {
6363 http:: Method :: GET => {
6464 error = 400 ;
65- message = "Not Implemented: Use /keys/ or /quotes/ interfaces" ;
65+ message =
66+ "Not Implemented: Use /agent, /keys, or /quotes interfaces" ;
6667 response = HttpResponse :: BadRequest ( )
6768 . json ( JsonWrapper :: error ( error, message) ) ;
6869 }
6970 http:: Method :: POST => {
7071 error = 400 ;
7172 message =
72- "Not Implemented: Use /keys/ or /notifications/ interfaces" ;
73+ "Not Implemented: Use /keys or /notifications interfaces" ;
7374 response = HttpResponse :: BadRequest ( )
7475 . json ( JsonWrapper :: error ( error, message) ) ;
7576 }
@@ -103,19 +104,19 @@ pub(crate) async fn keys_default(req: HttpRequest) -> impl Responder {
103104 match req. head ( ) . method {
104105 http:: Method :: GET => {
105106 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" ;
107108 response = HttpResponse :: BadRequest ( )
108109 . json ( JsonWrapper :: error ( error, message) ) ;
109110 }
110111 http:: Method :: POST => {
111112 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" ;
113114 response = HttpResponse :: BadRequest ( )
114115 . json ( JsonWrapper :: error ( error, message) ) ;
115116 }
116117 _ => {
117118 error = 405 ;
118- message = "Method is not supported in /keys/ interface" ;
119+ message = "Method is not supported in /keys interface" ;
119120 response = HttpResponse :: MethodNotAllowed ( )
120121 . insert_header ( http:: header:: Allow ( vec ! [
121122 http:: Method :: GET ,
@@ -166,6 +167,37 @@ pub(crate) async fn quotes_default(req: HttpRequest) -> impl Responder {
166167 response
167168}
168169
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+
169201pub ( crate ) async fn notifications_default (
170202 req : HttpRequest ,
171203) -> impl Responder {
@@ -343,6 +375,11 @@ mod tests {
343375 . await
344376 }
345377
378+ #[ actix_rt:: test]
379+ async fn test_agent_default ( ) {
380+ test_default ( web:: resource ( "/" ) . to ( agent_default) , "GET" ) . await
381+ }
382+
346383 #[ derive( Serialize , Deserialize ) ]
347384 struct DummyQuery {
348385 param : String ,
@@ -395,10 +432,10 @@ mod tests {
395432 . error_handler ( path_parser_error) ,
396433 )
397434 . service (
398- web:: resource ( "/v2.1 /ok" ) . route ( web:: get ( ) . to ( dummy) ) ,
435+ web:: resource ( "/v2.2 /ok" ) . route ( web:: get ( ) . to ( dummy) ) ,
399436 )
400437 . service (
401- web:: resource ( "/v2.1 /ok/{number}/{string}" )
438+ web:: resource ( "/v2.2 /ok/{number}/{string}" )
402439 . route ( web:: get ( ) . to ( dummy_with_path) ) ,
403440 )
404441 . service (
@@ -410,7 +447,7 @@ mod tests {
410447
411448 // Sanity well formed request
412449 let req = test:: TestRequest :: get ( )
413- . uri ( "/v2.1 /ok?param=Test" )
450+ . uri ( "/v2.2 /ok?param=Test" )
414451 . set_json ( & DummyPayload { field : 42 } )
415452 . to_request ( ) ;
416453
@@ -432,7 +469,7 @@ mod tests {
432469
433470 // Test JSON parsing error
434471 let req = test:: TestRequest :: get ( )
435- . uri ( "/v2.1 /ok?param=Test" )
472+ . uri ( "/v2.2 /ok?param=Test" )
436473 . insert_header ( http:: header:: ContentType :: json ( ) )
437474 . set_payload ( "Not JSON" )
438475 . to_request ( ) ;
@@ -445,7 +482,7 @@ mod tests {
445482
446483 // Test Query parsing error
447484 let req = test:: TestRequest :: get ( )
448- . uri ( "/v2.1 /ok?test=query" )
485+ . uri ( "/v2.2 /ok?test=query" )
449486 . set_json ( & DummyPayload { field : 42 } )
450487 . to_request ( ) ;
451488 let resp = test:: call_service ( & app, req) . await ;
@@ -457,7 +494,7 @@ mod tests {
457494
458495 // Test Path parsing error
459496 let req = test:: TestRequest :: get ( )
460- . uri ( "/v2.1 /ok/something/42?test=query" )
497+ . uri ( "/v2.2 /ok/something/42?test=query" )
461498 . set_json ( & DummyPayload { field : 42 } )
462499 . to_request ( ) ;
463500 let resp = test:: call_service ( & app, req) . await ;
0 commit comments