gitverse-sdk 1.2.0

Rust SDK for GitVerse API
Documentation
// Code generated by gitverse-codegen. DO NOT EDIT.

use crate::client::{Client, decode_response, handle_empty_response};
use crate::errors::Error;
use crate::types::*;

impl Client {
    /// Get repository webhooks list
    pub async fn list_webhooks(
        &self,
        owner: &str,
        repo: &str,
        opts: Option<&QueryOptions>,
    ) -> Result<Vec<Webhook>, Error> {
        let path = format!("/repos/{}/{}/hooks", owner, repo);
        let resp = self.send_get(&path, opts).await?;
        decode_response(resp).await
    }

    /// Create repository webhook
    pub async fn create_webhook(
        &self,
        owner: &str,
        repo: &str,
        params: &CreateWebhookParams,
    ) -> Result<Webhook, Error> {
        let path = format!("/repos/{}/{}/hooks", owner, repo);
        let resp = self.send_post(&path, Some(params)).await?;
        decode_response(resp).await
    }

    /// Get webhook information
    pub async fn get_webhook(
        &self,
        owner: &str,
        repo: &str,
        hook_id: f64,
    ) -> Result<Webhook, Error> {
        let path = format!("/repos/{}/{}/hooks/{}", owner, repo, hook_id);
        let resp = self.send_get(&path, None).await?;
        decode_response(resp).await
    }

    /// Update webhook
    pub async fn update_webhook(
        &self,
        owner: &str,
        repo: &str,
        hook_id: f64,
        params: &UpdateWebhookParams,
    ) -> Result<Webhook, Error> {
        let path = format!("/repos/{}/{}/hooks/{}", owner, repo, hook_id);
        let resp = self.send_patch(&path, Some(params)).await?;
        decode_response(resp).await
    }

    /// Delete webhook
    pub async fn delete_webhook(&self, owner: &str, repo: &str, hook_id: f64) -> Result<(), Error> {
        let path = format!("/repos/{}/{}/hooks/{}", owner, repo, hook_id);
        let resp = self.send_delete(&path, Option::<&()>::None).await?;
        handle_empty_response(resp).await
    }
}