ones-oidc 0.2.6

ONES OpenID Connect client for Rust
Documentation
use super::oidc_types::LoginHintKind;
use serde::{Deserialize, Serialize};

#[derive(Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum AuthRequestResource {
    Idp,
    Device,
}

#[derive(Deserialize)]
pub struct CibaLoginRequestFrontend {
    #[serde(rename = "loginHintKind")]
    pub login_hint_kind: LoginHintKind,
    #[serde(rename = "userIdentifier")]
    pub user_identifier: String,
    #[serde(rename = "sessionId")]
    pub session_id: Option<String>,
    pub resource: AuthRequestResource,
    pub scope: String,
}

// The resource should be fixed at the server level
#[derive(Deserialize)]
pub struct CibaLoginRequestFrontendOptionalResource {
    #[serde(rename = "loginHintKind")]
    pub login_hint_kind: LoginHintKind,
    #[serde(rename = "userIdentifier")]
    pub user_identifier: String,
    #[serde(rename = "sessionId")]
    pub session_id: Option<String>,
    pub resource: Option<AuthRequestResource>,
    pub scope: Option<String>,
}

// The resource should be fixed at the server level
#[derive(Deserialize)]
pub struct CibaLoginRequestFrontendWithoutResource {
    #[serde(rename = "loginHintKind")]
    pub login_hint_kind: LoginHintKind,
    #[serde(rename = "userIdentifier")]
    pub user_identifier: String,
    #[serde(rename = "sessionId")]
    pub session_id: Option<String>,
    pub scope: Option<String>,
}

#[derive(Deserialize)]
#[serde(rename_all = "snake_case")]
pub struct CibaStatusRequestFrontend {
    #[serde(rename = "authRequestId")]
    pub auth_request_id: String,
}

#[derive(Deserialize)]
pub struct RefreshTokenRequestFrontend {
    pub grant_type: String,
    pub refresh_token: String,
}

#[derive(Serialize, Deserialize)]
pub struct QrStatusRequest {
    #[serde(rename = "sessionId")]
    pub session_id: String,
}

impl QrStatusRequest {
    pub fn from_request_frontend(frontend: QrStatusRequestFrontend) -> Self {
        Self {
            session_id: frontend.session_id,
        }
    }
}

#[derive(Deserialize, Clone)]
pub struct QrStatusRequestFrontend {
    #[serde(rename = "sessionId")]
    pub session_id: String,
}