diff --git a/src/main.rs b/src/main.rs index 6d70982..3f037cb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -108,7 +108,9 @@ fn upload(id: Uuid, video: Data, shared: State) -> Result) -> Result, shared: State) { +#[post("/add_job/", format = "json", data = "")] +fn add_job(message: Json, jobset: String, shared: State) { let job = message.into_inner(); let id = uuid::Uuid::new_v4(); - shared.jobs.lock().unwrap().insert(id, WUnit::new(id, job)); + shared.jobs.lock().unwrap().insert(id, WUnit::new(id, jobset, job)); } fn main() { diff --git a/src/workunit.rs b/src/workunit.rs index f05bcb8..7d2f713 100644 --- a/src/workunit.rs +++ b/src/workunit.rs @@ -6,13 +6,21 @@ use std::net::IpAddr; #[derive(Default, Debug, Serialize, Deserialize, Clone)] pub struct WUnit { pub id: Uuid, + pub jobset: String, pub description: WDesc, pub status: EStatus } impl WUnit { - pub fn new(id: Uuid, description: WDesc) -> Self { + pub fn new(id: Uuid, _jobset: String, description: WDesc) -> Self { + let jobset: String = _jobset.chars() + .map(|x| match x { + '.' => '_', + '/' => '-', + _ => x + }).collect(); WUnit { id: id, + jobset: jobset, description: description, status: EStatus::Queued }