@@ -6,13 +6,12 @@ use std::{
6
6
7
7
use axum:: {
8
8
extract:: { FromRequest , RequestParts } ,
9
- http:: StatusCode ,
9
+ http:: { Method , StatusCode } ,
10
10
middleware,
11
11
routing:: get,
12
12
Extension , Router ,
13
13
} ;
14
14
use axum_server:: { tls_rustls:: RustlsConfig , Handle } ;
15
- use hyper:: { Body , Method , Request , Response } ;
16
15
use once_cell:: sync:: Lazy ;
17
16
use redis:: { aio:: MultiplexedConnection , ConnectionInfo } ;
18
17
use serde:: { Deserialize , Deserializer } ;
@@ -25,19 +24,11 @@ use primitives::{config::Environment, ValidatorId};
25
24
26
25
use crate :: {
27
26
db:: { CampaignRemaining , DbPool } ,
28
- middleware:: {
29
- auth:: { authenticate, Authenticate } ,
30
- cors:: { cors, Cors } ,
31
- Middleware ,
32
- } ,
27
+ middleware:: auth:: authenticate,
33
28
platform:: PlatformApi ,
34
- response:: { map_response_error, ResponseError } ,
35
29
routes:: {
36
- get_cfg, get_cfg_axum,
37
- routers:: {
38
- analytics_router, analytics_router_axum, campaigns_router, campaigns_router_axum,
39
- channels_router, channels_router_axum,
40
- } ,
30
+ get_cfg,
31
+ routers:: { analytics_router, campaigns_router, channels_router, units_for_slot_router} ,
41
32
} ,
42
33
} ;
43
34
94
85
fn default_port ( ) -> u16 {
95
86
DEFAULT_PORT
96
87
}
88
+
97
89
fn default_ip_addr ( ) -> IpAddr {
98
90
DEFAULT_IP_ADDR
99
91
}
92
+
100
93
fn default_redis_url ( ) -> ConnectionInfo {
101
94
DEFAULT_REDIS_URL . clone ( )
102
95
}
@@ -137,36 +130,7 @@ where
137
130
}
138
131
}
139
132
140
- pub async fn handle_routing ( & self , req : Request < Body > ) -> Response < Body > {
141
- let headers = match cors ( & req) {
142
- Some ( Cors :: Simple ( headers) ) => headers,
143
- // if we have a Preflight, just return the response directly
144
- Some ( Cors :: Preflight ( response) ) => return response,
145
- None => Default :: default ( ) ,
146
- } ;
147
-
148
- let req = match Authenticate . call ( req, self ) . await {
149
- Ok ( req) => req,
150
- Err ( error) => return map_response_error ( error) ,
151
- } ;
152
-
153
- let mut response = match ( req. uri ( ) . path ( ) , req. method ( ) ) {
154
- ( "/cfg" , & Method :: GET ) => get_cfg ( req, self ) . await ,
155
- ( route, _) if route. starts_with ( "/v5/analytics" ) => analytics_router ( req, self ) . await ,
156
- // This is important because it prevents us from doing
157
- // expensive regex matching for routes without /channel
158
- ( path, _) if path. starts_with ( "/v5/channel" ) => channels_router ( req, self ) . await ,
159
- ( path, _) if path. starts_with ( "/v5/campaign" ) => campaigns_router ( req, self ) . await ,
160
- _ => Err ( ResponseError :: NotFound ) ,
161
- }
162
- . unwrap_or_else ( map_response_error) ;
163
-
164
- // extend the headers with the initial headers we have from CORS (if there are some)
165
- response. headers_mut ( ) . extend ( headers) ;
166
- response
167
- }
168
-
169
- pub async fn axum_routing ( & self ) -> Router {
133
+ pub async fn routing ( & self ) -> Router {
170
134
let cors = CorsLayer :: new ( )
171
135
// "GET,HEAD,PUT,PATCH,POST,DELETE"
172
136
. allow_methods ( [
@@ -182,13 +146,14 @@ where
182
146
. allow_origin ( tower_http:: cors:: Any ) ;
183
147
184
148
let router = Router :: new ( )
185
- . nest ( "/channel" , channels_router_axum :: < C > ( ) )
186
- . nest ( "/campaign" , campaigns_router_axum :: < C > ( ) )
187
- . nest ( "/analytics" , analytics_router_axum :: < C > ( ) ) ;
149
+ . nest ( "/channel" , channels_router :: < C > ( ) )
150
+ . nest ( "/campaign" , campaigns_router :: < C > ( ) )
151
+ . nest ( "/analytics" , analytics_router :: < C > ( ) )
152
+ . nest ( "/units-for-slot" , units_for_slot_router :: < C > ( ) ) ;
188
153
189
154
Router :: new ( )
190
155
. nest ( "/v5" , router)
191
- . route ( "/cfg" , get ( get_cfg_axum :: < C > ) )
156
+ . route ( "/cfg" , get ( get_cfg :: < C > ) )
192
157
. layer (
193
158
// keeps the order from top to bottom!
194
159
ServiceBuilder :: new ( )
@@ -208,7 +173,7 @@ impl<C: Locked + 'static> Application<C> {
208
173
} ;
209
174
210
175
info ! ( & logger, "Listening on socket address: {}!" , socket_addr) ;
211
- let router = self . axum_routing ( ) . await ;
176
+ let router = self . routing ( ) . await ;
212
177
213
178
let handle = Handle :: new ( ) ;
214
179
0 commit comments