2018-11-03 09:42:48 +00:00
|
|
|
use failure::*;
|
|
|
|
use std::collections::HashMap;
|
|
|
|
|
|
|
|
|
2018-11-15 16:07:10 +00:00
|
|
|
use crate::api::schema::*;
|
|
|
|
use crate::api::router::*;
|
2018-11-03 09:42:48 +00:00
|
|
|
use serde_json::{json, Value};
|
|
|
|
|
2018-11-14 16:32:17 +00:00
|
|
|
fn test_sync_api_handler(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
2018-11-03 09:42:48 +00:00
|
|
|
println!("This is a test {}", param);
|
|
|
|
|
|
|
|
// let force: Option<bool> = Some(false);
|
|
|
|
|
|
|
|
//if let Some(force) = param.force {
|
|
|
|
//}
|
|
|
|
|
|
|
|
let _force = param["force"].as_bool()
|
|
|
|
.ok_or_else(|| format_err!("missing parameter 'force'"))?;
|
|
|
|
|
|
|
|
if let Some(_force) = param["force"].as_bool() {
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Ok(json!(null))
|
|
|
|
}
|
|
|
|
|
2018-12-05 13:38:37 +00:00
|
|
|
const PROXMOX_PKG_VERSION: &'static str = env!("PROXMOX_PKG_VERSION");
|
|
|
|
const PROXMOX_PKG_RELEASE: &'static str = env!("PROXMOX_PKG_RELEASE");
|
|
|
|
const PROXMOX_PKG_REPOID: &'static str = env!("PROXMOX_PKG_REPOID");
|
|
|
|
|
2018-12-05 13:03:15 +00:00
|
|
|
|
2018-12-05 13:38:37 +00:00
|
|
|
fn get_version(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
2018-12-05 13:03:15 +00:00
|
|
|
|
|
|
|
Ok(json!({
|
2018-12-05 13:38:37 +00:00
|
|
|
"version": PROXMOX_PKG_VERSION,
|
|
|
|
"release": PROXMOX_PKG_RELEASE,
|
|
|
|
"repoid": PROXMOX_PKG_REPOID
|
2018-12-05 13:03:15 +00:00
|
|
|
}))
|
|
|
|
}
|
2018-11-15 12:28:15 +00:00
|
|
|
|
2018-12-05 13:38:37 +00:00
|
|
|
|
2018-11-15 10:46:13 +00:00
|
|
|
pub fn router() -> Router {
|
2018-11-03 09:42:48 +00:00
|
|
|
|
2018-12-05 13:03:15 +00:00
|
|
|
let route4 = Router::new()
|
2018-11-15 12:28:15 +00:00
|
|
|
.get(ApiMethod {
|
2018-11-23 10:34:15 +00:00
|
|
|
parameters: ObjectSchema::new("Another Endpoint."),
|
2018-11-15 15:56:28 +00:00
|
|
|
returns: Schema::Null,
|
2018-11-16 10:12:00 +00:00
|
|
|
handler: |param, _info| {
|
2018-11-15 16:47:59 +00:00
|
|
|
println!("This is a clousure handler: {}", param);
|
|
|
|
|
|
|
|
Ok(json!(null))
|
2018-11-16 10:12:00 +00:00
|
|
|
},
|
2018-11-15 12:28:15 +00:00
|
|
|
});
|
|
|
|
|
2018-12-05 13:03:15 +00:00
|
|
|
|
|
|
|
let nodeinfo = Router::new()
|
2018-12-06 09:23:45 +00:00
|
|
|
.get(ApiMethod::new(
|
|
|
|
test_sync_api_handler,
|
|
|
|
ObjectSchema::new("This is a simple test.")
|
|
|
|
.optional("force", BooleanSchema::new("Test for boolean options")))
|
|
|
|
)
|
|
|
|
.subdir("subdir3", route4);
|
2018-11-03 09:42:48 +00:00
|
|
|
|
2018-12-05 13:03:15 +00:00
|
|
|
let nodes = Router::new()
|
|
|
|
.match_all("node", nodeinfo);
|
|
|
|
|
|
|
|
let version = Router::new()
|
2018-12-06 09:23:45 +00:00
|
|
|
.get(ApiMethod::new(
|
|
|
|
get_version,
|
|
|
|
ObjectSchema::new("Proxmox Backup Server API version.")));
|
2018-12-05 13:03:15 +00:00
|
|
|
|
|
|
|
let route = Router::new()
|
|
|
|
.get(ApiMethod {
|
|
|
|
handler: get_version,
|
|
|
|
parameters: ObjectSchema::new("Directory index."),
|
|
|
|
returns: Schema::Null,
|
|
|
|
})
|
2018-12-06 09:23:45 +00:00
|
|
|
.subdir("version", version)
|
|
|
|
.subdir("nodes", nodes);
|
2018-11-15 12:28:15 +00:00
|
|
|
|
2018-11-03 14:10:21 +00:00
|
|
|
route
|
2018-11-03 09:42:48 +00:00
|
|
|
}
|