Skip to main content

rover_api/
types.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize)]
4pub struct ApiErrorResponse {
5    #[serde(rename = "errorCode")]
6    pub error_code: String,
7    pub message: String,
8    pub detail: Option<String>,
9    pub context: Option<serde_json::Value>,
10}
11
12#[derive(Debug, Deserialize, Serialize)]
13pub struct RobloxUser {
14    pub id: u64,
15    pub username: String,
16    #[serde(rename = "displayName")]
17    pub display_name: String,
18    pub description: Option<String>,
19    #[serde(rename = "hasVerifiedBadge")]
20    pub has_verified_badge: bool,
21}
22
23#[derive(Debug, Deserialize, Serialize)]
24pub struct DiscordUser {
25    pub id: String,
26    pub username: String,
27    pub discriminator: String,
28    pub avatar: Option<String>,
29    #[serde(rename = "globalName")]
30    pub global_name: Option<String>,
31}
32
33#[derive(Debug, Deserialize, Serialize)]
34pub struct DiscordGuildMember {
35    pub user: DiscordUser,
36    pub nick: Option<String>,
37    pub roles: Vec<String>,
38    #[serde(rename = "joinedAt")]
39    pub joined_at: String,
40    #[serde(rename = "premiumSince")]
41    pub premium_since: Option<String>,
42}
43
44#[derive(Debug, Deserialize, Serialize)]
45pub struct DiscordToRobloxResponse {
46    pub roblox: RobloxUser,
47    #[serde(rename = "discordId")]
48    pub discord_id: String,
49    #[serde(rename = "guildId")]
50    pub guild_id: String,
51}
52
53#[derive(Debug, Deserialize, Serialize)]
54pub struct RobloxToDiscordResponse {
55    pub members: Vec<DiscordGuildMember>,
56}
57
58#[derive(Debug, Deserialize, Serialize)]
59pub struct RoleUpdate {
60    pub added: Vec<String>,
61    pub removed: Vec<String>,
62}
63
64#[derive(Debug, Deserialize, Serialize)]
65pub struct UpdateUserResponse {
66    pub roles: RoleUpdate,
67    pub nickname: Option<String>,
68    #[serde(rename = "previousNickname")]
69    pub previous_nickname: Option<String>,
70    pub permissions: Option<serde_json::Value>,
71}