mina_node_native/http_server/routes/
discovery.rs1use axum::{extract::State, Json};
7use utoipa_axum::{router::OpenApiRouter, routes};
8
9use mina_node::rpc::{
10 RpcDiscoveryBoostrapStatsResponse, RpcDiscoveryRoutingTableResponse, RpcRequest,
11};
12
13use crate::http_server::{AppResult, AppState};
14
15pub fn routes() -> OpenApiRouter<AppState> {
17 OpenApiRouter::new()
18 .routes(routes!(routing_table))
19 .routes(routes!(bootstrap_stats))
20}
21
22#[utoipa::path(
24 get,
25 path = "/discovery/routing_table",
26 tag = "discovery",
27 responses(
28 (status = 200, description = "Routing table")
29 )
30)]
31async fn routing_table(
32 State(state): State<AppState>,
33) -> AppResult<Json<RpcDiscoveryRoutingTableResponse>> {
34 jsonify_rpc!(state, RpcRequest::DiscoveryRoutingTable)
35}
36
37#[utoipa::path(
39 get,
40 path = "/discovery/bootstrap_stats",
41 tag = "discovery",
42 responses(
43 (status = 200, description = "Bootstrap statistics")
44 )
45)]
46async fn bootstrap_stats(
47 State(state): State<AppState>,
48) -> AppResult<Json<RpcDiscoveryBoostrapStatsResponse>> {
49 jsonify_rpc!(state, RpcRequest::DiscoveryBoostrapStats)
50}