]>
Commit | Line | Data |
---|---|---|
248cb518 DM |
1 | use failure::*; |
2 | ||
3 | use crate::api::schema::*; | |
4 | use crate::api::router::*; | |
5 | use serde_json::{json, Value}; | |
6 | ||
7 | pub mod config; | |
8 | pub mod admin; | |
b2b3485d | 9 | pub mod node; |
248cb518 DM |
10 | mod version; |
11 | mod subscription; | |
12 | ||
13 | fn test_sync_api_handler(param: Value, _info: &ApiMethod) -> Result<Value, Error> { | |
14 | println!("This is a test {}", param); | |
15 | ||
16 | // let force: Option<bool> = Some(false); | |
17 | ||
18 | //if let Some(force) = param.force { | |
19 | //} | |
20 | ||
21 | let _force = param["force"].as_bool() | |
22 | .ok_or_else(|| format_err!("missing parameter 'force'"))?; | |
23 | ||
24 | if let Some(_force) = param["force"].as_bool() { | |
25 | } | |
26 | ||
27 | Ok(json!(null)) | |
28 | } | |
29 | ||
30 | pub fn router() -> Router { | |
31 | ||
32 | let route4 = Router::new() | |
33 | .get(ApiMethod::new( | |
34 | |param, _info| { | |
35 | println!("This is a clousure handler: {}", param); | |
36 | ||
37 | Ok(json!(null)) | |
38 | }, | |
39 | ObjectSchema::new("Another Endpoint.")) | |
40 | .returns(Schema::Null)); | |
41 | ||
42 | ||
43 | let nodeinfo = Router::new() | |
44 | .get(ApiMethod::new( | |
45 | test_sync_api_handler, | |
46 | ObjectSchema::new("This is a simple test.") | |
47 | .optional("force", BooleanSchema::new("Test for boolean options"))) | |
48 | ) | |
49 | .subdir("subdir3", route4); | |
50 | ||
51 | let nodes = Router::new() | |
b2b3485d | 52 | .subdir("localhost", node::router()); |
248cb518 DM |
53 | |
54 | ||
55 | let route = Router::new() | |
56 | .get(ApiMethod::new( | |
57 | |_,_| Ok(json!([ | |
58 | {"subdir": "config"}, | |
59 | {"subdir": "admin"}, | |
60 | {"subdir": "nodes"}, | |
61 | {"subdir": "subscription"}, | |
62 | {"subdir": "version"}, | |
63 | ])), | |
64 | ObjectSchema::new("Directory index."))) | |
65 | .subdir("admin", admin::router()) | |
66 | .subdir("config", config::router()) | |
67 | .subdir("nodes", nodes) | |
68 | .subdir("subscription", subscription::router()) | |
69 | .subdir("version", version::router()); | |
70 | ||
71 | route | |
72 | } |