1use lazy_static::lazy_static;
2use semver::Version;
3use serde::{Deserialize, Serialize};
4use std::borrow::Cow;
5use time::OffsetDateTime;
6
7pub static ATUIN_HEADER_VERSION: &str = "Atuin-Version";
9pub static ATUIN_CARGO_VERSION: &str = env!("CARGO_PKG_VERSION");
10
11lazy_static! {
12 pub static ref ATUIN_VERSION: Version =
13 Version::parse(ATUIN_CARGO_VERSION).expect("failed to parse self semver");
14}
15
16#[derive(Debug, Serialize, Deserialize)]
17pub struct UserResponse {
18 pub username: String,
19}
20
21#[derive(Debug, Serialize, Deserialize)]
22pub struct RegisterRequest {
23 pub email: String,
24 pub username: String,
25 pub password: String,
26}
27
28#[derive(Debug, Serialize, Deserialize)]
29pub struct RegisterResponse {
30 pub session: String,
31}
32
33#[derive(Debug, Serialize, Deserialize)]
34pub struct DeleteUserResponse {}
35
36#[derive(Debug, Serialize, Deserialize)]
37pub struct SendVerificationResponse {
38 pub email_sent: bool,
39 pub verified: bool,
40}
41
42#[derive(Debug, Serialize, Deserialize)]
43pub struct VerificationTokenRequest {
44 pub token: String,
45}
46
47#[derive(Debug, Serialize, Deserialize)]
48pub struct VerificationTokenResponse {
49 pub verified: bool,
50}
51
52#[derive(Debug, Serialize, Deserialize)]
53pub struct ChangePasswordRequest {
54 pub current_password: String,
55 pub new_password: String,
56}
57
58#[derive(Debug, Serialize, Deserialize)]
59pub struct ChangePasswordResponse {}
60
61#[derive(Debug, Serialize, Deserialize)]
62pub struct LoginRequest {
63 pub username: String,
64 pub password: String,
65}
66
67#[derive(Debug, Serialize, Deserialize)]
68pub struct LoginResponse {
69 pub session: String,
70}
71
72#[derive(Debug, Serialize, Deserialize)]
73pub struct AddHistoryRequest {
74 pub id: String,
75 #[serde(with = "time::serde::rfc3339")]
76 pub timestamp: OffsetDateTime,
77 pub data: String,
78 pub hostname: String,
79}
80
81#[derive(Debug, Serialize, Deserialize)]
82pub struct CountResponse {
83 pub count: i64,
84}
85
86#[derive(Debug, Serialize, Deserialize)]
87pub struct SyncHistoryRequest {
88 #[serde(with = "time::serde::rfc3339")]
89 pub sync_ts: OffsetDateTime,
90 #[serde(with = "time::serde::rfc3339")]
91 pub history_ts: OffsetDateTime,
92 pub host: String,
93}
94
95#[derive(Debug, Serialize, Deserialize)]
96pub struct SyncHistoryResponse {
97 pub history: Vec<String>,
98}
99
100#[derive(Debug, Serialize, Deserialize)]
101pub struct ErrorResponse<'a> {
102 pub reason: Cow<'a, str>,
103}
104
105#[derive(Debug, Serialize, Deserialize)]
106pub struct IndexResponse {
107 pub homage: String,
108 pub version: String,
109 pub total_history: i64,
110}
111
112#[derive(Debug, Serialize, Deserialize)]
113pub struct StatusResponse {
114 pub count: i64,
115 pub username: String,
116 pub deleted: Vec<String>,
117
118 pub page_size: i64, pub version: String,
123}
124
125#[derive(Debug, Serialize, Deserialize)]
126pub struct DeleteHistoryRequest {
127 pub client_id: String,
128}
129
130#[derive(Debug, Serialize, Deserialize)]
131pub struct MessageResponse {
132 pub message: String,
133}
134
135#[derive(Debug, Serialize, Deserialize)]
136pub struct MeResponse {
137 pub username: String,
138}