Select Git revision
-
Benguria Elguezabal, Gorka authoredBenguria Elguezabal, Gorka authored
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(())
}*/