[pve-devel] [PATCH proxmox-perl-rs v2 03/12] common: notify: add bindings for webhook API routes
Max Carrara
m.carrara at proxmox.com
Wed Jul 17 17:35:56 CEST 2024
Missed a `cargo fmt` here as well ;)
On Fri Jul 12, 2024 at 1:27 PM CEST, Lukas Wagner wrote:
> Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
> ---
> common/src/notify.rs | 63 ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 63 insertions(+)
>
> diff --git a/common/src/notify.rs b/common/src/notify.rs
> index e1b006b..fe192d5 100644
> --- a/common/src/notify.rs
> +++ b/common/src/notify.rs
> @@ -19,6 +19,9 @@ mod export {
> DeleteableSmtpProperty, SmtpConfig, SmtpConfigUpdater, SmtpMode, SmtpPrivateConfig,
> SmtpPrivateConfigUpdater,
> };
> + use proxmox_notify::endpoints::webhook::{
> + DeleteableWebhookProperty, WebhookConfig, WebhookConfigUpdater,
> + };
> use proxmox_notify::matcher::{
> CalendarMatcher, DeleteableMatcherProperty, FieldMatcher, MatchModeOperator, MatcherConfig,
> MatcherConfigUpdater, SeverityMatcher,
> @@ -393,6 +396,66 @@ mod export {
> api::smtp::delete_endpoint(&mut config, name)
> }
>
> + #[export(serialize_error)]
> + fn get_webhook_endpoints(
> + #[try_from_ref] this: &NotificationConfig,
> + ) -> Result<Vec<WebhookConfig>, HttpError> {
> + let config = this.config.lock().unwrap();
> + api::webhook::get_endpoints(&config)
> + }
> +
> + #[export(serialize_error)]
> + fn get_webhook_endpoint(
> + #[try_from_ref] this: &NotificationConfig,
> + id: &str,
> + ) -> Result<WebhookConfig, HttpError> {
> + let config = this.config.lock().unwrap();
> + api::webhook::get_endpoint(&config, id)
> + }
> +
> + #[export(serialize_error)]
> + #[allow(clippy::too_many_arguments)]
> + fn add_webhook_endpoint(
> + #[try_from_ref] this: &NotificationConfig,
> + endpoint_config: WebhookConfig,
> + ) -> Result<(), HttpError> {
> + let mut config = this.config.lock().unwrap();
> + api::webhook::add_endpoint(
> + &mut config,
> + endpoint_config,
> + )
> + }
> +
> + #[export(serialize_error)]
> + #[allow(clippy::too_many_arguments)]
> + fn update_webhook_endpoint(
> + #[try_from_ref] this: &NotificationConfig,
> + name: &str,
> + config_updater: WebhookConfigUpdater,
> + delete: Option<Vec<DeleteableWebhookProperty>>,
> + digest: Option<&str>,
> + ) -> Result<(), HttpError> {
> + let mut config = this.config.lock().unwrap();
> + let digest = decode_digest(digest)?;
> +
> + api::webhook::update_endpoint(
> + &mut config,
> + name,
> + config_updater,
> + delete.as_deref(),
> + digest.as_deref(),
> + )
> + }
> +
> + #[export(serialize_error)]
> + fn delete_webhook_endpoint(
> + #[try_from_ref] this: &NotificationConfig,
> + name: &str,
> + ) -> Result<(), HttpError> {
> + let mut config = this.config.lock().unwrap();
> + api::webhook::delete_endpoint(&mut config, name)
> + }
> +
> #[export(serialize_error)]
> fn get_matchers(
> #[try_from_ref] this: &NotificationConfig,
More information about the pve-devel
mailing list