myrmidon 0.0.1

Remote cmd / shell handler
Documentation
use exception::{Exception, StatusCode};
use myrmidon_types::TaskCreate;

use crate::Task;

use super::Tasks;

impl Tasks{
  pub fn create(&mut self, task_create: TaskCreate) -> Task{
    let task: Task = Task::new(task_create.get_name().clone(), task_create.get_commands().clone());
    self.get_tasks_mut().insert(task.get_id().clone(), task.clone());
    task
  }
  pub fn get(&mut self, id: &String) -> Option<&Task>{
    self.get_task(id)
  }
  pub fn start(&mut self, id: &String) -> Result<Task, Exception>{
    match self.get_task_mut(id){
      Some(task) => {
        task.start();
        Ok(task.clone())
      },
      None => Err(Exception::new().status_code(StatusCode::NotFound).message(String::from("task"), String::from("not-found"))),
    }
  }
  pub fn stop(&mut self, id: &String) -> Result<Task, Exception>{
    match self.get_task_mut(id){
      Some(task) => {
        task.stop();
        Ok(task.clone())
      },
      None => Err(Exception::new().status_code(StatusCode::NotFound).message(String::from("task"), String::from("not-found"))),
    }
  }
}