onyx_api 0.3.0

api for interacting with onyx servers
Documentation
use nanoid::nanoid;
use serde::Deserialize;
use serde::Serialize;

use crate::db::UserModelSafe;

#[derive(Clone, Serialize, Deserialize, Debug, Default)]
pub struct TokenOnly {
    pub token: String,
}

#[derive(Clone, Serialize, Deserialize, Debug, Default)]
pub struct ProposeToken {
    pub token: String,
    pub proposed_token: String,
}

#[derive(Clone, Serialize, Deserialize, Debug, Default)]
pub struct PublishData {
    pub hash: String,
    pub token: String,
}

#[derive(Clone, Serialize, Deserialize, Debug, Default)]
pub struct PublishResponse {
    pub package_id: String,
}

#[derive(Clone, Serialize, Deserialize, Debug)]
pub struct LoginRequest {
    pub username: String,
    pub password: String,
}

impl Default for LoginRequest {
    fn default() -> Self {
        Self {
            username: nanoid!(),
            password: nanoid!(),
        }
    }
}

#[derive(Clone, Serialize, Deserialize, PartialEq, Debug)]
pub struct LoginResponse {
    pub user: UserModelSafe,
    pub token: String,
    pub expires_at: u64,
}