1cfg_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}