This repository has been archived on 2024-08-06. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
chellaris-rust-api/src/v1/schemas.rs

64 lines
No EOL
1.6 KiB
Rust

use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use utoipa::{ToSchema};
// DB Permission Enums
pub enum TablePermission {
Game,
Empire,
Data,
User
}
// User Structs
#[derive(Serialize, ToSchema, Debug)]
pub struct User {
#[schema(example = "abcdef")]
pub user_token: String,
#[schema(example = "discorduser")]
pub discord_handle: Option<String>,
#[schema(example = "/assets/avatars/124677612.png")]
pub profile_picture: Option<String>,
#[schema(example = "\
{\
[\"game_permissions\"]: true,
[\"empire_permissions\"]: true,
[\"data_permissions\"]: false,
[\"user_permissions\"]: false,
}\
")]
pub permissions: HashMap<String, bool>,
}
#[derive(Serialize, Deserialize, ToSchema, Debug)]
pub struct GetUserParams {
#[schema(example = "abcdef")]
pub user_token: String,
}
#[derive(Serialize, Deserialize, ToSchema, Debug)]
pub struct UpdateUserParams {
#[schema(example = "abcdef")]
pub user_token: String,
#[schema(example = "discorduser")]
pub discord_handle: Option<String>,
#[schema(example = "/assets/avatars/124677612.png")]
pub profile_picture: Option<String>,
#[schema(example = "\
{\
[\"game_permissions\"]: true,
[\"empire_permissions\"]: true,
[\"data_permissions\"]: false,
[\"user_permissions\"]: false,
}\
")]
pub permissions: HashMap<String, bool>,
}
#[derive(Serialize, Deserialize, ToSchema, Debug)]
pub struct DeleteUserParams {
#[schema(example = "abcdef")]
pub user_token: String,
}