noosphere_ns/server/
routes.rs

1use std::fmt::Display;
2
3pub const API_VERSION: &str = "v0alpha1";
4
5pub enum Route {
6    NetworkInfo,
7    GetPeerId,
8
9    GetPeers,
10    AddPeers,
11
12    Listen,
13    StopListening,
14    Address,
15
16    GetRecord,
17    PostRecord,
18
19    Bootstrap,
20}
21
22impl Display for Route {
23    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
24        let fragment = match self {
25            Route::NetworkInfo => "network_info",
26            Route::GetPeerId => "peer_id",
27
28            Route::GetPeers => "peers",
29            Route::AddPeers => "peers/*addr",
30
31            Route::Listen => "listen/*addr",
32            Route::StopListening => "listen",
33            Route::Address => "addresses",
34
35            Route::GetRecord => "records/:identity",
36            Route::PostRecord => "records",
37
38            Route::Bootstrap => "bootstrap",
39        };
40
41        write!(f, "/api/{API_VERSION}/{fragment}")
42    }
43}