modio/request/mods/
mod.rs

1mod add_mod;
2mod delete_mod;
3mod edit_mod;
4mod get_mod;
5mod get_mod_team_members;
6mod get_mods;
7mod submit_mod_rating;
8
9pub mod comments;
10pub mod dependencies;
11pub mod events;
12pub mod media;
13pub mod metadata;
14pub mod stats;
15pub mod subscribe;
16pub mod tags;
17
18pub use add_mod::AddMod;
19pub use delete_mod::DeleteMod;
20pub use edit_mod::EditMod;
21pub use get_mod::GetMod;
22pub use get_mod_team_members::GetModTeamMembers;
23pub use get_mods::GetMods;
24pub use submit_mod_rating::SubmitModRating;
25
26/// Mod filters & sorting
27///
28/// # Filters
29/// - `Fulltext`
30/// - `Id`
31/// - `GameId`
32/// - `Status`
33/// - `Visible`
34/// - `SubmittedBy`
35/// - `DateAdded`
36/// - `DateUpdated`
37/// - `DateLive`
38/// - `MaturityOption`
39/// - `Name`
40/// - `NameId`
41/// - `Summary`
42/// - `Description`
43/// - `Homepage`
44/// - `Modfile`
45/// - `MetadataBlob`
46/// - `MetadataKVP`
47/// - `Tags`
48///
49/// # Sorting
50/// - `Id`
51/// - `Name`
52/// - `Downloads`
53/// - `Popular`
54/// - `Ratings`
55/// - `Subscribers`
56///
57/// See the [modio docs](https://docs.mod.io/restapiref/#get-mods) for more information.
58///
59/// By default this returns up to `100` items. you can limit the result by using `limit` and
60/// `offset`.
61///
62/// # Example
63/// ```
64/// use modio::request::filter::prelude::*;
65/// use modio::request::mods::filters::Id;
66/// use modio::request::mods::filters::GameId;
67/// use modio::request::mods::filters::Tags;
68///
69/// let filter = Id::_in(vec![1, 2]).order_by(Id::desc());
70///
71/// let filter = GameId::eq(6).and(Tags::eq("foobar")).limit(10);
72/// ```
73#[rustfmt::skip]
74pub mod filters {
75    #[doc(inline)]
76    pub use crate::request::filter::prelude::Fulltext;
77    #[doc(inline)]
78    pub use crate::request::filter::prelude::Id;
79    #[doc(inline)]
80    pub use crate::request::filter::prelude::Name;
81    #[doc(inline)]
82    pub use crate::request::filter::prelude::NameId;
83    #[doc(inline)]
84    pub use crate::request::filter::prelude::Status;
85    #[doc(inline)]
86    pub use crate::request::filter::prelude::DateAdded;
87    #[doc(inline)]
88    pub use crate::request::filter::prelude::DateUpdated;
89    #[doc(inline)]
90    pub use crate::request::filter::prelude::DateLive;
91    #[doc(inline)]
92    pub use crate::request::filter::prelude::SubmittedBy;
93
94    filter!(GameId, GAME_ID, "game_id", Eq, NotEq, In, Cmp, OrderBy);
95    filter!(Visible, VISIBLE, "visible", Eq);
96    filter!(MaturityOption, MATURITY_OPTION, "maturity_option", Eq, Cmp, Bit);
97    filter!(Summary, SUMMARY, "summary", Like);
98    filter!(Description, DESCRIPTION, "description", Like);
99    filter!(Homepage, HOMEPAGE, "homepage_url", Eq, NotEq, Like, In);
100    filter!(Modfile, MODFILE, "modfile", Eq, NotEq, In, Cmp);
101    filter!(MetadataBlob, METADATA_BLOB, "metadata_blob", Eq, NotEq, Like);
102    filter!(MetadataKVP, METADATA_KVP, "metadata_kvp", Eq, NotEq, Like);
103    filter!(Tags, TAGS, "tags", Eq, NotEq, Like, In);
104
105    filter!(Downloads, DOWNLOADS, "downloads", OrderBy);
106    filter!(Popular, POPULAR, "popular", OrderBy);
107    filter!(Ratings, RATINGS, "ratings", OrderBy);
108    filter!(Subscribers, SUBSCRIBERS, "subscribers", OrderBy);
109}