Skip to content
Snippets Groups Projects
Select Git revision
  • d82ab67bb67008c58206678d6cab073996b9faab
  • master default
2 results

index.ts

Blame
  • to_bpmn.rs 1.79 KiB
    use crate::domain::usecases;
    use super::PresenterError;
    use super::write_file;
    use std::path::PathBuf;
    
    // Create and Write out BPMN File from XML-String
    pub fn from_drawio(drawio_xml: String, in_dir: &str, out_dir: &str) -> Result<(), PresenterError> {
    
        // generate bpmn diagram
        let bpmn_string = usecases::generate_bpmn_from_drawio(drawio_xml)
            .map_err(|error| PresenterError::GenerationFailed(error))?;
        
        // if nonexist create output dir
        let mut out_path = PathBuf::from(out_dir);
        std::fs::create_dir_all(out_path.clone())
            .map_err(|error| PresenterError::WriteFileFailed(error))?;
        
        if out_path.is_dir() {
            let in_path = PathBuf::from(in_dir);
            out_path.push(in_path.file_name().unwrap());
        }
        out_path.set_extension("bpmn"); // reset by default
    
        // write file
        write_file(&bpmn_string.as_bytes(), &out_path)
            .map_err(|error| PresenterError::WriteFileFailed(error))?;
    
        Ok(())
    }
    
    // Create and Write out BPMN File from JSON String
    /*pub fn from_json(json_workflow: String, in_dir: &str, out_dir: &str) -> Result<(), PresenterError> {
        
        // generate bpmn diagram
        let bpmn_string = usecases::generate_bpmn_from_json(json_workflow)
            .map_err(|error| PresenterError::GenerationFailed(error))?;
    
        // if nonexist create output dir
        let mut out_path = PathBuf::from(out_dir);
        std::fs::create_dir_all(out_path.clone())
            .map_err(|error| PresenterError::WriteFileFailed(error))?;
        
        if out_path.is_dir() {
            let in_path = PathBuf::from(in_dir);
            out_path.push(in_path.file_name().unwrap());
        }
        out_path.set_extension("bpmn"); // reset by default
    
        // write file
        write_file(&bpmn_string.as_bytes(), &out_path)
            .map_err(|error| PresenterError::WriteFileFailed(error))?;
    
        Ok(())
    }*/