mangadex_api/v5/
user.rs

1//! User endpoint handler.
2//!
3//! <https://api.mangadex.org/docs/swagger.html#/User>
4
5cfg_custom_list_v2! {
6    pub mod bookmarks;
7}
8
9#[cfg(feature = "legacy-user-delete")]
10pub mod delete;
11pub mod follows;
12pub mod get;
13pub mod history;
14pub mod id;
15pub mod list;
16pub mod me;
17cfg_custom_list_v2! {
18    pub mod subscription;
19}
20
21use crate::HttpClientRef;
22use uuid::Uuid;
23
24#[cfg(feature = "custom_list_v2")]
25use bookmarks::BookmarksEndpoint;
26#[cfg(feature = "legacy-user-delete")]
27use delete::DeleteEndpoint;
28use follows::FollowsEndpoint;
29use get::ListUserBuilder;
30use history::HistoryEndpoint;
31use id::IdEndpoint;
32use list::ListEndpoint;
33use me::MeEndpoint;
34#[cfg(feature = "custom_list_v2")]
35use subscription::SubscriptionEndpoint;
36
37#[derive(Debug)]
38pub struct UserBuilder {
39    http_client: HttpClientRef,
40}
41
42impl UserBuilder {
43    pub fn new(http_client: HttpClientRef) -> Self {
44        Self { http_client }
45    }
46    cfg_custom_list_v2! {
47        pub fn bookmarks(&self) -> BookmarksEndpoint {
48            BookmarksEndpoint::new(self.http_client.clone())
49        }
50    }
51
52    pub fn get(&self) -> ListUserBuilder {
53        ListUserBuilder::default().http_client(self.http_client.clone())
54    }
55
56    #[cfg(feature = "legacy-user-delete")]
57    pub fn delete(&self) -> DeleteEndpoint {
58        DeleteEndpoint::new(self.http_client.clone())
59    }
60
61    pub fn follows(&self) -> FollowsEndpoint {
62        FollowsEndpoint::new(self.http_client.clone())
63    }
64
65    pub fn history(&self) -> HistoryEndpoint {
66        HistoryEndpoint::new(self.http_client.clone())
67    }
68
69    pub fn id(&self, id: Uuid) -> IdEndpoint {
70        IdEndpoint::new(self.http_client.clone(), id)
71    }
72
73    pub fn list(&self) -> ListEndpoint {
74        ListEndpoint::new(self.http_client.clone())
75    }
76
77    pub fn me(&self) -> MeEndpoint {
78        MeEndpoint::new(self.http_client.clone())
79    }
80
81    cfg_custom_list_v2! {
82        pub fn subscription(&self) -> SubscriptionEndpoint {
83            SubscriptionEndpoint::new(self.http_client.clone())
84        }
85    }
86}