]> git.proxmox.com Git - proxmox-backup.git/blob - src/api3.rs
/catar/encoder.rs: do not store data from virtual file systems
[proxmox-backup.git] / src / api3.rs
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;
9 mod version;
10
11 fn test_sync_api_handler(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
12 println!("This is a test {}", param);
13
14 // let force: Option<bool> = Some(false);
15
16 //if let Some(force) = param.force {
17 //}
18
19 let _force = param["force"].as_bool()
20 .ok_or_else(|| format_err!("missing parameter 'force'"))?;
21
22 if let Some(_force) = param["force"].as_bool() {
23 }
24
25 Ok(json!(null))
26 }
27
28 pub fn router() -> Router {
29
30 let route4 = Router::new()
31 .get(ApiMethod::new(
32 |param, _info| {
33 println!("This is a clousure handler: {}", param);
34
35 Ok(json!(null))
36 },
37 ObjectSchema::new("Another Endpoint."))
38 .returns(Schema::Null));
39
40
41 let nodeinfo = Router::new()
42 .get(ApiMethod::new(
43 test_sync_api_handler,
44 ObjectSchema::new("This is a simple test.")
45 .optional("force", BooleanSchema::new("Test for boolean options")))
46 )
47 .subdir("subdir3", route4);
48
49 let nodes = Router::new()
50 .match_all("node", nodeinfo);
51
52
53 let route = Router::new()
54 .get(ApiMethod::new(
55 |_,_| Ok(json!([
56 {"subdir": "config"},
57 {"subdir": "admin"},
58 {"subdir": "version"},
59 {"subdir": "nodes"}
60 ])),
61 ObjectSchema::new("Directory index.")))
62 .subdir("admin", admin::router())
63 .subdir("config", config::router())
64 .subdir("version", version::router())
65 .subdir("nodes", nodes);
66
67 route
68 }