Signed-off-by: Lukas Wagner <l.wag...@proxmox.com> --- pve-rs/src/notify.rs | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-)
diff --git a/pve-rs/src/notify.rs b/pve-rs/src/notify.rs index db573ef..a101416 100644 --- a/pve-rs/src/notify.rs +++ b/pve-rs/src/notify.rs @@ -2,10 +2,10 @@ mod export { use anyhow::{bail, Error}; use perlmod::Value; - + use serde_json::Value as JSONValue; use std::sync::Mutex; - use proxmox_notify::Config; + use proxmox_notify::{api, api::ApiError, Config, Notification, Severity}; pub struct NotificationConfig { config: Mutex<Config>, @@ -62,4 +62,34 @@ mod export { fn write_config(#[try_from_ref] this: &NotificationConfig) -> Result<(String, String), Error> { Ok(this.config.lock().unwrap().write()?) } + + #[export(serialize_error)] + fn send( + #[try_from_ref] this: &NotificationConfig, + channel: &str, + severity: Severity, + title: String, + body: String, + properties: Option<JSONValue>, + ) -> Result<(), ApiError> { + let config = this.config.lock().unwrap(); + + let notification = Notification { + severity, + title, + body, + properties, + }; + + api::common::send(&config, channel, ¬ification) + } + + #[export(serialize_error)] + fn test_endpoint( + #[try_from_ref] this: &NotificationConfig, + endpoint: &str, + ) -> Result<(), ApiError> { + let config = this.config.lock().unwrap(); + api::common::test_endpoint(&config, endpoint) + } } -- 2.30.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel