better-auth-api 0.10.0

Plugin implementations for better-auth
Documentation
use serde::{Deserialize, Serialize};
use validator::Validate;

#[derive(Debug, Deserialize, Validate)]
pub struct SocialSignInRequest {
    #[validate(length(min = 1, message = "Provider is required"))]
    pub provider: String,
    #[serde(rename = "callbackURL")]
    pub callback_url: Option<String>,
    pub scopes: Option<Vec<String>>,
}

#[derive(Debug, Deserialize, Validate)]
pub struct LinkSocialRequest {
    #[validate(length(min = 1, message = "Provider is required"))]
    pub provider: String,
    #[serde(rename = "callbackURL")]
    pub callback_url: Option<String>,
    pub scopes: Option<Vec<String>>,
}

#[derive(Debug, Deserialize, Validate)]
pub struct GetAccessTokenRequest {
    #[validate(length(min = 1, message = "Provider ID is required"))]
    #[serde(rename = "providerId")]
    pub provider_id: String,
}

#[derive(Debug, Deserialize, Validate)]
pub struct RefreshTokenRequest {
    #[validate(length(min = 1, message = "Provider ID is required"))]
    #[serde(rename = "providerId")]
    pub provider_id: String,
}

#[derive(Debug, Serialize)]
pub struct SocialSignInResponse {
    pub url: String,
    pub redirect: bool,
}

#[derive(Debug, Serialize)]
pub struct OAuthCallbackResponse<U: Serialize> {
    pub token: String,
    pub user: U,
}

#[derive(Debug, Serialize)]
pub struct AccessTokenResponse {
    #[serde(rename = "accessToken")]
    pub access_token: Option<String>,
    #[serde(rename = "accessTokenExpiresAt")]
    pub access_token_expires_at: Option<String>,
    pub scope: Option<String>,
}

#[derive(Debug, Serialize)]
pub struct RefreshTokenResponse {
    #[serde(rename = "accessToken")]
    pub access_token: Option<String>,
    #[serde(rename = "accessTokenExpiresAt")]
    pub access_token_expires_at: Option<String>,
    #[serde(rename = "refreshToken")]
    pub refresh_token: Option<String>,
    pub scope: Option<String>,
}