hetzner_robot_rhai/src/scripting/server.rs
Maxime Van Hees 6082ecc6d1 updates
2025-07-18 04:33:37 +02:00

33 lines
974 B
Rust

use crate::api::{models::Server, Client};
use prettytable::{row, Table};
use rhai::{plugin::*, Array, Dynamic};
pub fn register(engine: &mut Engine) {
let server_module = exported_module!(server_api);
engine.register_global_module(server_module.into());
}
#[export_module]
pub mod server_api {
use super::*;
use rhai::EvalAltResult;
#[rhai_fn(name = "get_server", return_raw)]
pub fn get_server(
client: &mut Client,
server_number: i64,
) -> Result<Server, Box<EvalAltResult>> {
client
.get_server(server_number as i32)
.map_err(|e| e.to_string().into())
}
#[rhai_fn(name = "get_servers", return_raw)]
pub fn get_servers(client: &mut Client) -> Result<Array, Box<EvalAltResult>> {
let servers = client
.get_servers()
.map_err(|e| Into::<Box<EvalAltResult>>::into(e.to_string()))?;
Ok(servers.into_iter().map(Dynamic::from).collect())
}
}