2021-04-20 19:23:04 +00:00
|
|
|
use crate::db::types::SignKey;
|
2021-03-29 08:44:26 +00:00
|
|
|
use crate::db::types::User as SqliteUser;
|
2021-03-24 07:32:31 +00:00
|
|
|
use serde_derive::{Deserialize, Serialize};
|
2021-03-31 04:12:26 +00:00
|
|
|
use tungstenite::http::Response;
|
2021-03-29 08:44:26 +00:00
|
|
|
pub type InsertKey = String;
|
2021-04-24 05:09:15 +00:00
|
|
|
|
2021-04-28 15:26:57 +00:00
|
|
|
use crate::db::types::{Id, Time};
|
2021-04-24 05:09:15 +00:00
|
|
|
use crate::api::types::Message;
|
2021-04-21 20:07:28 +00:00
|
|
|
#[derive(Serialize, Deserialize, Debug)]
|
2021-04-20 19:23:04 +00:00
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
#[serde(tag = "type")]
|
|
|
|
pub enum ResponseType {
|
2021-03-24 07:32:31 +00:00
|
|
|
Error,
|
2021-04-28 15:26:57 +00:00
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
UserAdded(User),
|
|
|
|
NewMessage {
|
|
|
|
date: Time,
|
|
|
|
from_me: bool,
|
|
|
|
id: uuid::Uuid,
|
|
|
|
message: String,
|
|
|
|
},
|
2021-03-24 07:32:31 +00:00
|
|
|
NewUser,
|
|
|
|
FetchedMessages,
|
|
|
|
InstanceCreated,
|
|
|
|
InstanceAccepted,
|
2021-04-21 20:07:28 +00:00
|
|
|
#[serde(rename_all = "camelCase")]
|
2021-04-20 19:23:04 +00:00
|
|
|
InitialConfig {
|
|
|
|
id: crate::db::types::Id,
|
|
|
|
public_key: fcpv2::types::SSK,
|
|
|
|
private_key: fcpv2::types::SSK,
|
|
|
|
},
|
2021-04-21 20:07:28 +00:00
|
|
|
UserList {
|
|
|
|
users: Vec<User>,
|
2021-04-24 05:09:15 +00:00
|
|
|
},
|
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
MessageList{
|
|
|
|
id: uuid::Uuid,
|
|
|
|
messages: Vec<Message>
|
2021-04-21 20:07:28 +00:00
|
|
|
}
|
2021-03-24 07:32:31 +00:00
|
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize)]
|
2021-04-20 19:23:04 +00:00
|
|
|
pub enum ErrorType {
|
2021-03-31 04:12:26 +00:00
|
|
|
WrongKey,
|
2021-04-01 12:44:13 +00:00
|
|
|
FailedToAddUser,
|
2021-04-20 19:23:04 +00:00
|
|
|
WrongUserId,
|
2021-03-24 07:32:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
2021-04-20 19:23:04 +00:00
|
|
|
pub struct AppError {
|
2021-03-31 04:12:26 +00:00
|
|
|
pub res_type: ErrorType,
|
2021-03-24 07:32:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Status of last requested action. Like `Create Instance` or `LoadUsers`
|
2021-03-31 04:12:26 +00:00
|
|
|
#[derive(Serialize, Deserialize)]
|
2021-04-20 19:23:04 +00:00
|
|
|
pub struct AppStatus {
|
|
|
|
pub res_type: ResponseType,
|
2021-03-24 07:32:31 +00:00
|
|
|
}
|
2021-03-29 08:44:26 +00:00
|
|
|
|
2021-04-21 20:07:28 +00:00
|
|
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
|
|
|
#[serde(rename_all = "camelCase")]
|
2021-03-29 08:44:26 +00:00
|
|
|
pub struct User {
|
2021-03-31 04:12:26 +00:00
|
|
|
pub id: String,
|
2021-03-29 08:44:26 +00:00
|
|
|
pub name: String,
|
|
|
|
pub sign_key: SignKey,
|
|
|
|
pub insert_key: InsertKey,
|
|
|
|
pub messages_count: u32,
|
2021-04-22 15:28:07 +00:00
|
|
|
pub my_messages_count: u32,
|
2021-03-29 08:44:26 +00:00
|
|
|
}
|
|
|
|
|
2021-04-28 15:26:57 +00:00
|
|
|
|
2021-04-29 07:00:20 +00:00
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
2021-04-28 15:26:57 +00:00
|
|
|
#[serde(rename_all = "camelCase")]
|
|
|
|
pub struct FreenetMessage {
|
|
|
|
pub id: uuid::Uuid,
|
|
|
|
pub message: String,
|
|
|
|
pub date: Time,
|
|
|
|
}
|