1
1
use std:: future:: IntoFuture ;
2
2
3
3
use anyhow:: { anyhow, Context } ;
4
- use axum:: {
5
- middleware:: { self } ,
6
- routing:: { get, post} ,
7
- Router ,
8
- } ;
4
+ use axum:: Router ;
9
5
use futures:: stream:: StreamExt ;
10
6
use signal_hook:: consts:: * ;
11
7
use signal_hook_tokio:: Signals ;
12
- use tower_http:: {
13
- cors:: CorsLayer ,
14
- trace:: { DefaultMakeSpan , DefaultOnRequest , DefaultOnResponse , TraceLayer } ,
15
- LatencyUnit ,
16
- } ;
17
- use tracing:: { debug, info, trace, warn, Level } ;
8
+ use tracing:: { debug, info, trace, warn} ;
18
9
19
10
use crate :: shared_state:: { AppState , SharedState } ;
20
11
use crate :: { handlers, CliArguments , StdResult } ;
@@ -72,45 +63,9 @@ impl Application {
72
63
} ;
73
64
74
65
trace ! ( "configuring router…" ) ;
75
- let app = Router :: new ( )
76
- . route ( "/aggregator/epoch-settings" , get ( handlers:: epoch_settings) )
77
- . route ( "/aggregator/artifact/snapshots" , get ( handlers:: snapshots) )
78
- . route (
79
- "/aggregator/artifact/mithril-stake-distributions" ,
80
- get ( handlers:: msds) ,
81
- )
82
- . route (
83
- "/aggregator/artifact/mithril-stake-distribution/:digest" ,
84
- get ( handlers:: msd) ,
85
- )
86
- . route (
87
- "/aggregator/artifact/snapshot/:digest" ,
88
- get ( handlers:: snapshot) ,
89
- )
90
- . route ( "/aggregator/certificates" , get ( handlers:: certificates) )
91
- . route ( "/aggregator/certificate/:hash" , get ( handlers:: certificate) )
92
- . route (
93
- "/aggregator/statistics/snapshot" ,
94
- post ( handlers:: statistics) ,
95
- )
96
- . with_state ( shared_state)
97
- . layer ( CorsLayer :: permissive ( ) )
98
- . layer ( middleware:: from_fn ( handlers:: set_json_app_header) )
99
- . layer (
100
- TraceLayer :: new_for_http ( )
101
- . make_span_with (
102
- DefaultMakeSpan :: new ( )
103
- . include_headers ( false )
104
- . level ( Level :: DEBUG ) ,
105
- )
106
- . on_request ( DefaultOnRequest :: new ( ) . level ( Level :: DEBUG ) )
107
- . on_response (
108
- DefaultOnResponse :: new ( )
109
- . level ( Level :: INFO )
110
- . include_headers ( true )
111
- . latency_unit ( LatencyUnit :: Micros ) ,
112
- ) ,
113
- ) ;
66
+ let router = Router :: new ( )
67
+ . nest ( "/aggregator" , handlers:: aggregator_router ( ) . await )
68
+ . with_state ( shared_state) ;
114
69
let listener = {
115
70
let connection_string = format ! ( "{}:{}" , params. ip_address, params. tcp_port) ;
116
71
debug ! ( "binding on {connection_string}" ) ;
@@ -121,7 +76,7 @@ impl Application {
121
76
122
77
trace ! ( "starting server…" ) ;
123
78
let result = tokio:: select!(
124
- res = axum:: serve( listener, app ) . into_future( ) => res. map_err( |e| anyhow!( e) ) ,
79
+ res = axum:: serve( listener, router ) . into_future( ) => res. map_err( |e| anyhow!( e) ) ,
125
80
_res = OsSignalHandler :: handle_signal( signals) => Ok ( ( ) ) ,
126
81
) ;
127
82
0 commit comments