1use crate::client::{Client, decode_response, handle_empty_response};
4use crate::errors::Error;
5use crate::types::*;
6
7impl Client {
8 pub async fn delete_org_package(
10 &self,
11 org: &str,
12 package_type: &str,
13 package_name: &str,
14 ) -> Result<(), Error> {
15 let path = format!("/orgs/{}/packages/{}/{}", org, package_type, package_name);
16 let resp = self.send_delete(&path, Option::<&()>::None).await?;
17 handle_empty_response(resp).await
18 }
19
20 pub async fn list_org_package_versions(
22 &self,
23 org: &str,
24 package_type: &str,
25 package_name: &str,
26 opts: Option<&QueryOptions>,
27 ) -> Result<Vec<PackageVersion>, Error> {
28 let path = format!(
29 "/orgs/{}/packages/{}/{}/versions",
30 org, package_type, package_name
31 );
32 let resp = self.send_get(&path, opts).await?;
33 decode_response(resp).await
34 }
35
36 pub async fn delete_org_package_version(
38 &self,
39 org: &str,
40 package_type: &str,
41 package_name: &str,
42 package_version_id: &str,
43 ) -> Result<(), Error> {
44 let path = format!(
45 "/orgs/{}/packages/{}/{}/versions/{}",
46 org, package_type, package_name, package_version_id
47 );
48 let resp = self.send_delete(&path, Option::<&()>::None).await?;
49 handle_empty_response(resp).await
50 }
51
52 pub async fn delete_user_package(
54 &self,
55 username: &str,
56 package_type: &str,
57 package_name: &str,
58 ) -> Result<(), Error> {
59 let path = format!(
60 "/users/{}/packages/{}/{}",
61 username, package_type, package_name
62 );
63 let resp = self.send_delete(&path, Option::<&()>::None).await?;
64 handle_empty_response(resp).await
65 }
66
67 pub async fn list_user_package_versions(
69 &self,
70 username: &str,
71 package_type: &str,
72 package_name: &str,
73 opts: Option<&QueryOptions>,
74 ) -> Result<Vec<PackageVersion>, Error> {
75 let path = format!(
76 "/users/{}/packages/{}/{}/versions",
77 username, package_type, package_name
78 );
79 let resp = self.send_get(&path, opts).await?;
80 decode_response(resp).await
81 }
82
83 pub async fn delete_user_package_version(
85 &self,
86 username: &str,
87 package_type: &str,
88 package_name: &str,
89 package_version_id: &str,
90 ) -> Result<(), Error> {
91 let path = format!(
92 "/users/{}/packages/{}/{}/versions/{}",
93 username, package_type, package_name, package_version_id
94 );
95 let resp = self.send_delete(&path, Option::<&()>::None).await?;
96 handle_empty_response(resp).await
97 }
98}