rover-api 0.1.0

Rust client library for the RoVer Bot Developer API
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize)]
pub struct ApiErrorResponse {
    #[serde(rename = "errorCode")]
    pub error_code: String,
    pub message: String,
    pub detail: Option<String>,
    pub context: Option<serde_json::Value>,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct RobloxUser {
    pub id: u64,
    pub username: String,
    #[serde(rename = "displayName")]
    pub display_name: String,
    pub description: Option<String>,
    #[serde(rename = "hasVerifiedBadge")]
    pub has_verified_badge: bool,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct DiscordUser {
    pub id: String,
    pub username: String,
    pub discriminator: String,
    pub avatar: Option<String>,
    #[serde(rename = "globalName")]
    pub global_name: Option<String>,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct DiscordGuildMember {
    pub user: DiscordUser,
    pub nick: Option<String>,
    pub roles: Vec<String>,
    #[serde(rename = "joinedAt")]
    pub joined_at: String,
    #[serde(rename = "premiumSince")]
    pub premium_since: Option<String>,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct DiscordToRobloxResponse {
    pub roblox: RobloxUser,
    #[serde(rename = "discordId")]
    pub discord_id: String,
    #[serde(rename = "guildId")]
    pub guild_id: String,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct RobloxToDiscordResponse {
    pub members: Vec<DiscordGuildMember>,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct RoleUpdate {
    pub added: Vec<String>,
    pub removed: Vec<String>,
}

#[derive(Debug, Deserialize, Serialize)]
pub struct UpdateUserResponse {
    pub roles: RoleUpdate,
    pub nickname: Option<String>,
    #[serde(rename = "previousNickname")]
    pub previous_nickname: Option<String>,
    pub permissions: Option<serde_json::Value>,
}