modio/request/user/mod.rs
1mod get_authenticated_user;
2mod get_muted_users;
3mod get_user_events;
4mod get_user_files;
5mod get_user_games;
6mod get_user_mods;
7mod get_user_ratings;
8mod get_user_subscriptions;
9mod mute_user;
10mod unmute_user;
11
12pub use get_authenticated_user::GetAuthenticatedUser;
13pub use get_muted_users::GetMutedUsers;
14pub use get_user_events::GetUserEvents;
15pub use get_user_files::GetUserFiles;
16pub use get_user_games::GetUserGames;
17pub use get_user_mods::GetUserMods;
18pub use get_user_ratings::GetUserRatings;
19pub use get_user_subscriptions::GetUserSubscriptions;
20pub use mute_user::MuteUser;
21pub use unmute_user::UnmuteUser;
22
23/// Filters for events, subscriptions and ratings.
24#[rustfmt::skip]
25pub mod filters {
26 #[doc(inline)]
27 pub use crate::request::games::filters as games;
28 #[doc(inline)]
29 pub use crate::request::mods::filters as mods;
30 #[doc(inline)]
31 pub use crate::request::files::filters as files;
32
33 /// User event filters and sorting.
34 ///
35 /// # Filters
36 /// - `Id`
37 /// - `GameId`
38 /// - `ModId`
39 /// - `UserId`
40 /// - `DateAdded`
41 /// - `EventType`
42 ///
43 /// # Sorting
44 /// - `Id`
45 /// - `DateAdded`
46 ///
47 /// See the [modio docs](https://docs.mod.io/restapiref/#get-user-events) for more information.
48 ///
49 /// By default this returns up to `100` items. You can limit the result by using `limit` and
50 /// `offset`.
51 ///
52 /// # Example
53 /// ```
54 /// use modio::request::filter::prelude::*;
55 /// use modio::request::user::filters::events::EventType as Filter;
56 /// use modio::types::mods::EventType;
57 ///
58 /// let filter = Id::gt(1024).and(Filter::eq(EventType::MODFILE_CHANGED));
59 /// ```
60 pub mod events {
61 #[doc(inline)]
62 pub use crate::request::filter::prelude::Id;
63 #[doc(inline)]
64 pub use crate::request::filter::prelude::ModId;
65 #[doc(inline)]
66 pub use crate::request::filter::prelude::DateAdded;
67
68 #[doc(inline)]
69 pub use crate::request::mods::events::filters::UserId;
70 #[doc(inline)]
71 pub use crate::request::mods::events::filters::EventType;
72
73 filter!(GameId, GAME_ID, "game_id", Eq, NotEq, In, Cmp, OrderBy);
74 }
75
76 /// Subscriptions filters and sorting.
77 ///
78 /// # Filters
79 /// - `Fulltext`
80 /// - `Id`
81 /// - `GameId`
82 /// - `Status`
83 /// - `Visible`
84 /// - `SubmittedBy`
85 /// - `DateAdded`
86 /// - `DateUpdated`
87 /// - `DateLive`
88 /// - `MaturityOption`
89 /// - `Name`
90 /// - `NameId`
91 /// - `Summary`
92 /// - `Description`
93 /// - `Homepage`
94 /// - `Modfile`
95 /// - `MetadataBlob`
96 /// - `MetadataKVP`
97 /// - `Tags`
98 ///
99 /// # Sorting
100 /// - `Id`
101 /// - `Name`
102 /// - `Downloads`
103 /// - `Popular`
104 /// - `Ratings`
105 /// - `Subscribers`
106 ///
107 /// See the [mod.io docs](https://docs.mod.io/restapiref/#get-user-subscriptions) for more information.
108 ///
109 /// By default this returns up to `100` items. you can limit the result by using `limit` and
110 /// `offset`.
111 ///
112 /// # Example
113 /// ```
114 /// use modio::request::filter::prelude::*;
115 /// use modio::request::user::filters::subscriptions::Id;
116 ///
117 /// let filter = Id::_in(vec![1, 2]).order_by(Id::desc());
118 /// ```
119 pub mod subscriptions {
120 #[doc(inline)]
121 pub use crate::request::filter::prelude::Fulltext;
122 #[doc(inline)]
123 pub use crate::request::filter::prelude::Id;
124 #[doc(inline)]
125 pub use crate::request::filter::prelude::Name;
126 #[doc(inline)]
127 pub use crate::request::filter::prelude::NameId;
128
129 #[doc(inline)]
130 pub use crate::request::mods::filters::GameId;
131 #[doc(inline)]
132 pub use crate::request::mods::filters::Status;
133 #[doc(inline)]
134 pub use crate::request::mods::filters::Visible;
135 #[doc(inline)]
136 pub use crate::request::mods::filters::SubmittedBy;
137 #[doc(inline)]
138 pub use crate::request::mods::filters::DateAdded;
139 #[doc(inline)]
140 pub use crate::request::mods::filters::DateUpdated;
141 #[doc(inline)]
142 pub use crate::request::mods::filters::DateLive;
143 #[doc(inline)]
144 pub use crate::request::mods::filters::MaturityOption;
145 #[doc(inline)]
146 pub use crate::request::mods::filters::Summary;
147 #[doc(inline)]
148 pub use crate::request::mods::filters::Description;
149 #[doc(inline)]
150 pub use crate::request::mods::filters::Homepage;
151 #[doc(inline)]
152 pub use crate::request::mods::filters::Modfile;
153 #[doc(inline)]
154 pub use crate::request::mods::filters::MetadataBlob;
155 #[doc(inline)]
156 pub use crate::request::mods::filters::MetadataKVP;
157 #[doc(inline)]
158 pub use crate::request::mods::filters::Tags;
159
160 #[doc(inline)]
161 pub use crate::request::mods::filters::Downloads;
162 #[doc(inline)]
163 pub use crate::request::mods::filters::Popular;
164 #[doc(inline)]
165 pub use crate::request::mods::filters::Ratings;
166 #[doc(inline)]
167 pub use crate::request::mods::filters::Subscribers;
168 }
169
170 /// Rating filters and sorting.
171 ///
172 /// # Filters
173 /// - `GameId`
174 /// - `ModId`
175 /// - `Rating`
176 /// - `DateAdded`
177 ///
178 /// # Sorting
179 /// - `GameId`
180 /// - `ModId`
181 /// - `Rating`
182 /// - `DateAdded`
183 ///
184 /// See the [mod.io docs](https://docs.mod.io/restapiref/#get-user-ratings) for more information.
185 ///
186 /// By default this returns up to `100` items. You can limit the result by using `limit` and
187 /// `offset`.
188 ///
189 /// # Example
190 /// ```
191 /// use modio::request::filter::prelude::*;
192 /// use modio::request::user::filters::ratings::GameId;
193 /// use modio::request::user::filters::ratings::DateAdded;
194 /// use modio::request::user::filters::ratings::Rating;
195 ///
196 /// let filter = GameId::_in(vec![1, 2]).order_by(DateAdded::desc());
197 ///
198 /// let filter = Rating::positive().order_by(DateAdded::desc());
199 /// ```
200 pub mod ratings {
201 use crate::request::filter::prelude::*;
202
203 #[doc(inline)]
204 pub use crate::request::filter::prelude::ModId;
205
206 filter!(GameId, GAME_ID, "game_id", Eq, NotEq, In, Cmp, OrderBy);
207 filter!(Rating, RATING, "rating", Eq, NotEq, In, Cmp, OrderBy);
208 filter!(DateAdded, DATE_ADDED, "date_added", Eq, NotEq, In, Cmp, OrderBy);
209
210 impl Rating {
211 pub fn positive() -> Filter {
212 Rating::eq(1)
213 }
214
215 pub fn negative() -> Filter {
216 Rating::eq(-1)
217 }
218 }
219 }
220}