use serde::Serialize;
use super::json::{JsonMap, to_json_map};
use super::api::ClientRequest;
pub fn get_panel_ids_request() -> ClientRequest {
ClientRequest::get(format!("panels"))
}
pub fn get_panel_layout_request(panel_id: Option<&str>) -> ClientRequest {
ClientRequest::get(format!("panels/{}/layout",
panel_id.unwrap_or("default")))
}
pub fn set_panel_layout_request(panel_id: &str, layout: JsonMap) -> ClientRequest {
let mut req = ClientRequest::put(format!("panels/{}/layout", panel_id));
req.set_json_body(layout);
req
}
pub fn delete_panel_request(panel_id: &str) -> ClientRequest {
ClientRequest::delete(format!("panels/{}", panel_id))
}
pub fn clear_panel_request(panel_id: Option<&str>) -> ClientRequest {
ClientRequest::post(format!("panels/{}/clear",
panel_id.unwrap_or("default")))
}
#[derive(Serialize)]
pub struct PanelExportParameters<'l> {
pub path: Option<&'l str>,
pub name: Option<&'l str>,
pub theme: Option<&'l str>,
pub zoom: Option<f32>,
pub logo: Option<bool>,
pub header: Option<bool>,
pub tools: Option<bool>,
pub toolbars: Option<bool>,
}
pub fn export_panel_request(panel_id: Option<&str>, p: PanelExportParameters) -> ClientRequest {
let mut req = ClientRequest::post(format!("panels/{}/export",
panel_id.unwrap_or("default")));
req.set_json_body(to_json_map(&p).unwrap());
req
}
#[derive(Serialize)]
pub struct AllPanelExportParameters<'l> {
pub path: Option<&'l str>,
pub theme: Option<&'l str>,
pub zoom: Option<f32>,
pub logo: Option<bool>,
pub header: Option<bool>,
pub tools: Option<bool>,
pub toolbars: Option<bool>,
}
pub fn export_all_panels_request(p: AllPanelExportParameters)
-> ClientRequest
{
let mut req = ClientRequest::post(format!("panels/export"));
req.set_json_body(to_json_map(&p).unwrap());
req
}