vtse/vtse-common/src/net.rs

35 lines
865 B
Rust
Raw Normal View History

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