gitlab/api/projects/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 ProjectAccessRequestsDeny<'a> {
15 #[builder(setter(into))]
17 project: NameOrId<'a>,
18
19 user_id: u64,
21}
22
23impl<'a> ProjectAccessRequestsDeny<'a> {
24 pub fn builder() -> ProjectAccessRequestsDenyBuilder<'a> {
26 ProjectAccessRequestsDenyBuilder::default()
27 }
28}
29
30impl Endpoint for ProjectAccessRequestsDeny<'_> {
31 fn method(&self) -> Method {
32 Method::DELETE
33 }
34
35 fn endpoint(&self) -> Cow<'static, str> {
36 format!("projects/{}/access_requests/{}", self.project, self.user_id).into()
37 }
38}
39
40#[cfg(test)]
41mod tests {
42 use crate::api::projects::access_requests::{
43 ProjectAccessRequestsDeny, ProjectAccessRequestsDenyBuilderError,
44 };
45 use crate::api::{self, Query};
46 use crate::test::client::{ExpectedUrl, SingleTestClient};
47
48 use http::Method;
49
50 #[test]
51 fn project_is_needed() {
52 let err = ProjectAccessRequestsDeny::builder()
53 .user_id(1)
54 .build()
55 .unwrap_err();
56 crate::test::assert_missing_field!(err, ProjectAccessRequestsDenyBuilderError, "project");
57 }
58
59 #[test]
60 fn user_id_is_needed() {
61 let err = ProjectAccessRequestsDeny::builder()
62 .project(1)
63 .build()
64 .unwrap_err();
65 crate::test::assert_missing_field!(err, ProjectAccessRequestsDenyBuilderError, "user_id");
66 }
67
68 #[test]
69 fn user_project_is_sufficient() {
70 ProjectAccessRequestsDeny::builder()
71 .project(1)
72 .user_id(1)
73 .build()
74 .unwrap();
75 }
76
77 #[test]
78 fn endpoint() {
79 let endpoint = ExpectedUrl::builder()
80 .endpoint("projects/simple%2Fproject/access_requests/1")
81 .method(Method::DELETE)
82 .build()
83 .unwrap();
84 let client = SingleTestClient::new_raw(endpoint, "");
85
86 let endpoint = ProjectAccessRequestsDeny::builder()
87 .project("simple/project")
88 .user_id(1)
89 .build()
90 .unwrap();
91 api::ignore(endpoint).query(&client).unwrap();
92 }
93}