mesa_dev/client/
webhooks.rs1use crate::low_level::apis::{webhooks_api, Error};
2use crate::models;
3
4use super::RepoClient;
5
6#[derive(Clone, Debug)]
8pub struct WebhooksClient<'a> {
9 pub(super) repo: &'a RepoClient<'a>,
10}
11
12impl WebhooksClient<'_> {
13 #[tracing::instrument(skip(self), fields(org = self.repo.org.org, repo = self.repo.repo), err(Debug))]
19 pub async fn list(
20 &self,
21 ) -> Result<
22 models::GetByOrgByRepoWebhooks200Response,
23 Error<webhooks_api::GetByOrgByRepoWebhooksError>,
24 > {
25 webhooks_api::get_by_org_by_repo_webhooks(
26 self.repo.org.config,
27 self.repo.org.org,
28 self.repo.repo,
29 )
30 .await
31 }
32
33 #[tracing::instrument(skip(self, request), fields(org = self.repo.org.org, repo = self.repo.repo), err(Debug))]
39 pub async fn create(
40 &self,
41 request: models::PostByOrgByRepoWebhooksRequest,
42 ) -> Result<
43 models::PostByOrgByRepoWebhooks201Response,
44 Error<webhooks_api::PostByOrgByRepoWebhooksError>,
45 > {
46 webhooks_api::post_by_org_by_repo_webhooks(
47 self.repo.org.config,
48 self.repo.org.org,
49 self.repo.repo,
50 Some(request),
51 )
52 .await
53 }
54
55 #[tracing::instrument(skip(self), fields(org = self.repo.org.org, repo = self.repo.repo), err(Debug))]
61 pub async fn delete(
62 &self,
63 webhook_id: &str,
64 ) -> Result<
65 models::DeleteByOrgApiKeysById200Response,
66 Error<webhooks_api::DeleteByOrgByRepoWebhooksByWebhookIdError>,
67 > {
68 webhooks_api::delete_by_org_by_repo_webhooks_by_webhook_id(
69 self.repo.org.config,
70 self.repo.org.org,
71 self.repo.repo,
72 Some(webhook_id),
73 )
74 .await
75 }
76}