mangadex_api_schema_rust/v5/
oauth.rs1use mangadex_api_types::ApiClientProfile;
2use serde::Deserialize;
3
4use super::AuthTokens;
5
6#[derive(Debug, Deserialize, Clone, Default)]
7#[non_exhaustive]
8#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
9#[cfg_attr(feature = "specta", derive(specta::Type))]
10pub struct OAuthTokenResponse {
11 pub access_token: String,
12 pub expires_in: u32,
13 pub refresh_expires_in: u32,
14 pub refresh_token: String,
15 pub token_type: String,
16 #[serde(default)]
17 #[serde(alias = "not-before-policy")]
18 pub not_before_policy: u32,
19 pub session_state: uuid::Uuid,
20 pub scope: String,
21 pub client_type: ApiClientProfile,
22}
23
24impl From<OAuthTokenResponse> for AuthTokens {
25 fn from(value: OAuthTokenResponse) -> Self {
26 Self {
27 session: value.access_token.to_owned(),
28 refresh: value.refresh_token.clone(),
29 }
30 }
31}
32
33#[derive(Debug, Deserialize, Clone, Default)]
34#[serde(rename_all = "camelCase")]
35#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
36#[cfg_attr(feature = "specta", derive(specta::Type))]
37#[non_exhaustive]
38pub struct ClientInfo {
39 pub client_id: String,
40 pub client_secret: String,
41}