vtse/vtse-common/src/net.rs

35 lines
865 B
Rust

use crate::{
stock::{Stock, StockSymbol},
user::User,
};
use serde::Serialize;
use thiserror::Error;
use uuid::Uuid;
#[derive(Serialize)]
#[serde(rename_all = "snake_case")]
pub enum ServerResponse {
/// Generic success
Success,
NewApiKey(Uuid),
UserError(UserError),
StockInfo(Stock),
UserInfo(User),
}
#[derive(Error, Serialize, Debug)]
pub enum UserError {
#[error("An invalid username was provided.")]
InvalidUsername,
#[error("An invalid password was provided.")]
InvalidPassword,
#[error("An invalid API key was provided.")]
InvalidApiKey,
#[error("This requires authorization. Please login first.")]
NotAuthorized,
#[error("You don't have enough stock to sell {0} units.")]
NotEnoughOwnedStock(usize),
#[error("Stock symbol {0} does not exist.")]
InvalidStock(StockSymbol),
}