tools.rs: new helper required_string_param()
To extract parameters from Value.
This commit is contained in:
parent
0ee0ad5bf3
commit
0fe5d605e7
@ -1,5 +1,6 @@
|
||||
use failure::*;
|
||||
|
||||
use crate::tools;
|
||||
use crate::backup::datastore::*;
|
||||
use crate::backup::archive_index::*;
|
||||
//use crate::server::rest::*;
|
||||
@ -41,8 +42,8 @@ impl Future for UploadCaTar {
|
||||
|
||||
fn upload_catar(req_body: hyper::Body, param: Value, _info: &ApiUploadMethod) -> Result<BoxFut, Error> {
|
||||
|
||||
let store = param["name"].as_str().unwrap();
|
||||
let archive_name = param["archive_name"].as_str().unwrap();
|
||||
let store = tools::required_string_param(¶m, "name")?;
|
||||
let archive_name = tools::required_string_param(¶m, "archive_name")?;
|
||||
|
||||
println!("Upload {}.catar to {} ({}.aidx)", archive_name, store, archive_name);
|
||||
|
||||
|
@ -19,11 +19,6 @@ use serde_json::{Value};
|
||||
use hyper::Body;
|
||||
|
||||
|
||||
fn required_string_param<'a>(param: &'a Value, name: &str) -> &'a str {
|
||||
param[name].as_str().expect(&format!("missing parameter '{}'", name))
|
||||
}
|
||||
|
||||
|
||||
fn backup_directory(body: Body, store: &str, archive_name: &str) -> Result<(), Error> {
|
||||
|
||||
let client = HttpClient::new("localhost");
|
||||
@ -63,9 +58,9 @@ fn backup_image(datastore: &DataStore, file: &std::fs::File, size: usize, target
|
||||
|
||||
fn create_backup(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
||||
|
||||
let filename = required_string_param(¶m, "filename");
|
||||
let store = required_string_param(¶m, "store");
|
||||
let target = required_string_param(¶m, "target");
|
||||
let filename = tools::required_string_param(¶m, "filename")?;
|
||||
let store = tools::required_string_param(¶m, "store")?;
|
||||
let target = tools::required_string_param(¶m, "target")?;
|
||||
|
||||
let mut chunk_size = 4*1024*1024;
|
||||
|
||||
|
@ -15,6 +15,8 @@ use std::time::Duration;
|
||||
|
||||
use std::os::unix::io::AsRawFd;
|
||||
|
||||
use serde_json::Value;
|
||||
|
||||
pub mod timer;
|
||||
|
||||
/// The `BufferedReader` trait provides a single function
|
||||
@ -224,3 +226,10 @@ pub fn file_chunker<C, R>(
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn required_string_param<'a>(param: &'a Value, name: &str) -> Result<&'a str, Error> {
|
||||
match param[name].as_str() {
|
||||
Some(s) => Ok(s),
|
||||
None => bail!("missing parameter '{}'", name),
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user