gitlab/api/groups/access_requests/
deny.rs1use derive_builder::Builder;
8
9use crate::api::common::NameOrId;
10use crate::api::endpoint_prelude::*;
11
12#[derive(Debug, Builder, Clone)]
14pub struct GroupAccessRequestsDeny<'a> {
15 #[builder(setter(into))]
17 group: NameOrId<'a>,
18
19 user_id: u64,
21}
22
23impl<'a> GroupAccessRequestsDeny<'a> {
24 pub fn builder() -> GroupAccessRequestsDenyBuilder<'a> {
26 GroupAccessRequestsDenyBuilder::default()
27 }
28}
29
30impl Endpoint for GroupAccessRequestsDeny<'_> {
31 fn method(&self) -> Method {
32 Method::DELETE
33 }
34
35 fn endpoint(&self) -> Cow<'static, str> {
36 format!("groups/{}/access_requests/{}", self.group, self.user_id).into()
37 }
38}
39
40#[cfg(test)]
41mod tests {
42 use crate::api::groups::access_requests::{
43 GroupAccessRequestsDeny, GroupAccessRequestsDenyBuilderError,
44 };
45 use crate::api::{self, Query};
46 use crate::test::client::{ExpectedUrl, SingleTestClient};
47
48 use http::Method;
49
50 #[test]
51 fn group_is_needed() {
52 let err = GroupAccessRequestsDeny::builder()
53 .user_id(1)
54 .build()
55 .unwrap_err();
56 crate::test::assert_missing_field!(err, GroupAccessRequestsDenyBuilderError, "group");
57 }
58
59 #[test]
60 fn user_id_is_needed() {
61 let err = GroupAccessRequestsDeny::builder()
62 .group(1)
63 .build()
64 .unwrap_err();
65 crate::test::assert_missing_field!(err, GroupAccessRequestsDenyBuilderError, "user_id");
66 }
67
68 #[test]
69 fn user_group_is_sufficient() {
70 GroupAccessRequestsDeny::builder()
71 .group(1)
72 .user_id(1)
73 .build()
74 .unwrap();
75 }
76
77 #[test]
78 fn endpoint() {
79 let endpoint = ExpectedUrl::builder()
80 .endpoint("groups/simple%2Fgroup/access_requests/1")
81 .method(Method::DELETE)
82 .build()
83 .unwrap();
84 let client = SingleTestClient::new_raw(endpoint, "");
85
86 let endpoint = GroupAccessRequestsDeny::builder()
87 .group("simple/group")
88 .user_id(1)
89 .build()
90 .unwrap();
91 api::ignore(endpoint).query(&client).unwrap();
92 }
93}