mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-06-30 18:11:39 +02:00
30 lines
862 B
Rust
30 lines
862 B
Rust
use crate::Result;
|
|
use std::fs::File;
|
|
use std::path::Path;
|
|
use yaak_models::query_manager::QueryManager;
|
|
use yaak_models::util::get_workspace_export_resources;
|
|
|
|
pub struct ExportDataParams<'a> {
|
|
pub query_manager: &'a QueryManager,
|
|
pub yaak_version: &'a str,
|
|
pub export_path: &'a Path,
|
|
pub workspace_ids: Vec<&'a str>,
|
|
pub include_private_environments: bool,
|
|
}
|
|
|
|
pub fn export_data(params: ExportDataParams<'_>) -> Result<()> {
|
|
let db = params.query_manager.connect();
|
|
let export_data = get_workspace_export_resources(
|
|
&db,
|
|
params.yaak_version,
|
|
params.workspace_ids,
|
|
params.include_private_environments,
|
|
)?;
|
|
|
|
let file = File::options().create(true).truncate(true).write(true).open(params.export_path)?;
|
|
serde_json::to_writer_pretty(&file, &export_data)?;
|
|
file.sync_all()?;
|
|
|
|
Ok(())
|
|
}
|