MCPcopy Create free account
hub / github.com/Botloader/botloader / run_http_server

Function run_http_server

components/discordbroker/src/http_api.rs:76–117  ·  view source on GitHub ↗
(
    conf: crate::BrokerConfig,
    discord_state: Arc<InMemoryCache>,
    ready: Arc<AtomicBool>,
    broker_handle: BrokerHandle,
)

Source from the content-addressed store, hash-verified

74type RouterState = Arc<InnerRouterState>;
75
76pub async fn run_http_server(
77 conf: crate::BrokerConfig,
78 discord_state: Arc<InMemoryCache>,
79 ready: Arc<AtomicBool>,
80 broker_handle: BrokerHandle,
81) {
82 let app = Router::new()
83 // .route("/guilds/:guild_id/stream_events", get(handle_stream_events))
84 .route("/guilds/:guild_id", get(handle_get_guild))
85 .route(
86 "/guilds/:guild_id/voice_states",
87 get(handle_get_guild_voice_states),
88 )
89 .route("/guilds/:guild_id/emojis", get(handle_get_emojis))
90 .route("/guilds/:guild_id/channels", get(handle_get_channels))
91 .route(
92 "/guilds/:guild_id/channels/:channel_id",
93 get(handle_get_channel),
94 )
95 .route("/guilds/:guild_id/members", get(handle_get_members))
96 .route("/guilds/:guild_id/roles", get(handle_get_roles))
97 .route("/guilds/:guild_id/roles/:role_id", get(handle_get_role))
98 .route("/connected_guilds", get(handle_get_connected_guilds))
99 .with_state(RouterState::new(InnerRouterState {
100 broker_handle,
101 discord_state,
102 ready_tracker: ready,
103 }))
104 .layer(axum_metrics_layer::MetricsLayer {
105 name_prefix: "bl.broker",
106 });
107
108 // let make_service = app.into_make_service();
109
110 // run it with hyper on configured address
111 info!("Starting hype on address: {}", conf.http_api_listen_addr);
112
113 let listener = tokio::net::TcpListener::bind(conf.http_api_listen_addr)
114 .await
115 .unwrap();
116 axum::serve(listener, app).await.unwrap();
117}
118
119async fn handle_get_guild(
120 Path(guild_id_u): Path<u64>,

Callers 1

runFunction · 0.70

Calls 2

getFunction · 0.50
layerMethod · 0.45

Tested by

no test coverage detected