Skip to main content

vn_core/http/
mod.rs

1mod query;
2pub mod request;
3
4pub use query::{FieldSet, JsonQuery, JsonQueryBuilder, JsonQueryFilter, UrlQueryParams};
5pub use request::API_BASE_URL;
6pub use request::get::Get;
7pub use request::post::Post;
8use serde::{Deserialize, Serialize};
9use strum::{Display, EnumString, VariantArray};
10use url::Url;
11
12#[non_exhaustive]
13#[remain::sorted]
14#[derive(Copy, Clone, Debug, Deserialize, Serialize, Display, EnumString, VariantArray)]
15#[cfg_attr(feature = "specta", derive(specta::Type))]
16pub enum Endpoint {
17  #[serde(rename = "authinfo")]
18  #[strum(serialize = "authinfo")]
19  AuthInfo,
20
21  #[serde(rename = "character")]
22  #[strum(serialize = "character")]
23  Character,
24
25  #[serde(rename = "producer")]
26  #[strum(serialize = "producer")]
27  Producer,
28
29  #[serde(rename = "release")]
30  #[strum(serialize = "release")]
31  Release,
32
33  #[serde(rename = "rlist")]
34  #[strum(serialize = "rlist")]
35  Rlist,
36
37  #[serde(rename = "schema")]
38  #[strum(serialize = "schema")]
39  Schema,
40
41  #[serde(rename = "staff")]
42  #[strum(serialize = "staff")]
43  Staff,
44
45  #[serde(rename = "stats")]
46  #[strum(serialize = "stats")]
47  Stats,
48
49  #[serde(rename = "tag")]
50  #[strum(serialize = "tag")]
51  Tag,
52
53  #[serde(rename = "trait")]
54  #[strum(serialize = "trait")]
55  Trait,
56
57  #[serde(rename = "ulist")]
58  #[strum(serialize = "ulist")]
59  Ulist,
60
61  #[serde(rename = "ulist_labels")]
62  #[strum(serialize = "ulist_labels")]
63  UlistLabels,
64
65  #[serde(rename = "user")]
66  #[strum(serialize = "user")]
67  User,
68
69  #[serde(rename = "vn")]
70  #[strum(serialize = "vn")]
71  VisualNovel,
72}
73
74impl Endpoint {
75  pub fn url(self) -> Url {
76    Url::parse(&format!("{API_BASE_URL}/{self}")).unwrap()
77  }
78}