34888827f8
* Switch to warp + sql, use async and stable rust * Update CI to use stable
70 lines
1.5 KiB
Rust
70 lines
1.5 KiB
Rust
use chrono::Utc;
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct UserResponse {
|
|
pub username: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct RegisterRequest {
|
|
pub email: String,
|
|
pub username: String,
|
|
pub password: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct RegisterResponse {
|
|
pub session: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct LoginRequest {
|
|
pub username: String,
|
|
pub password: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct LoginResponse {
|
|
pub session: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct AddHistoryRequest {
|
|
pub id: String,
|
|
pub timestamp: chrono::DateTime<Utc>,
|
|
pub data: String,
|
|
pub hostname: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct CountResponse {
|
|
pub count: i64,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct SyncHistoryRequest {
|
|
pub sync_ts: chrono::DateTime<chrono::FixedOffset>,
|
|
pub history_ts: chrono::DateTime<chrono::FixedOffset>,
|
|
pub host: String,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct SyncHistoryResponse {
|
|
pub history: Vec<String>,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct ErrorResponse {
|
|
pub reason: String,
|
|
}
|
|
|
|
impl ErrorResponse {
|
|
pub fn reply(reason: &str, status: warp::http::StatusCode) -> impl warp::Reply {
|
|
warp::reply::with_status(
|
|
warp::reply::json(&ErrorResponse {
|
|
reason: String::from(reason),
|
|
}),
|
|
status,
|
|
)
|
|
}
|
|
}
|