gitlab/api/deploy_keys/
deploy_keys.rs1use derive_builder::Builder;
8
9use crate::api::endpoint_prelude::*;
10
11#[derive(Debug, Builder, Clone)]
13#[builder(setter(strip_option))]
14pub struct DeployKeys {
15 #[builder(default)]
17 public: Option<bool>,
18}
19
20impl DeployKeys {
21 pub fn builder() -> DeployKeysBuilder {
23 DeployKeysBuilder::default()
24 }
25}
26
27impl Endpoint for DeployKeys {
28 fn method(&self) -> Method {
29 Method::GET
30 }
31
32 fn endpoint(&self) -> Cow<'static, str> {
33 "deploy_keys".into()
34 }
35
36 fn parameters(&self) -> QueryParams {
37 let mut params = QueryParams::default();
38
39 params.push_opt("public", self.public);
40
41 params
42 }
43}
44
45impl Pageable for DeployKeys {}
46
47#[cfg(test)]
48mod tests {
49 use crate::api::deploy_keys::DeployKeys;
50 use crate::api::{self, Query};
51 use crate::test::client::{ExpectedUrl, SingleTestClient};
52
53 #[test]
54 fn endpoint() {
55 let endpoint = ExpectedUrl::builder()
56 .endpoint("deploy_keys")
57 .build()
58 .unwrap();
59 let client = SingleTestClient::new_raw(endpoint, "");
60
61 let endpoint = DeployKeys::builder().build().unwrap();
62 api::ignore(endpoint).query(&client).unwrap();
63 }
64
65 #[test]
66 fn endpoint_public() {
67 let endpoint = ExpectedUrl::builder()
68 .endpoint("deploy_keys")
69 .add_query_params(&[("public", "true")])
70 .build()
71 .unwrap();
72 let client = SingleTestClient::new_raw(endpoint, "");
73
74 let endpoint = DeployKeys::builder().public(true).build().unwrap();
75 api::ignore(endpoint).query(&client).unwrap();
76 }
77}