implement load_user function
This commit is contained in:
parent
be2705640c
commit
e582194b25
17
Cargo.lock
generated
17
Cargo.lock
generated
|
@ -303,6 +303,7 @@ dependencies = [
|
|||
"libc",
|
||||
"num-integer",
|
||||
"num-traits",
|
||||
"serde",
|
||||
"time",
|
||||
"winapi",
|
||||
]
|
||||
|
@ -412,6 +413,7 @@ version = "0.0.2"
|
|||
dependencies = [
|
||||
"regex",
|
||||
"rusqlite",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -1301,15 +1303,18 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.116"
|
||||
version = "1.0.125"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5"
|
||||
checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.116"
|
||||
version = "1.0.125"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f630a6370fd8e457873b4bd2ffdae75408bc291ba72be773772a4c2a065d9ae8"
|
||||
checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -1394,9 +1399,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
|
|||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.58"
|
||||
version = "1.0.65"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5"
|
||||
checksum = "f3a1d708c221c5a612956ef9f75b37e454e88d1f7b899fbd3a18d4252012d663"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
|
|
@ -22,7 +22,7 @@ serde = "1.0.116"
|
|||
serde_derive = "1.0.116"
|
||||
async-trait = "0.1.42"
|
||||
simple_logger = "1.11.0"
|
||||
chrono = "0.4.19"
|
||||
chrono = {version = "0.4.19", features = ["serde"]}
|
||||
|
||||
[dependencies.fcpv2]
|
||||
path = "../FCPv2"
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
use super::request::*;
|
||||
use super::response::User;
|
||||
use super::response::UserList;
|
||||
use crate::chat::types::PackedMessage;
|
||||
use crate::chat::types::SP;
|
||||
use crate::db::{messages, users};
|
||||
use async_std::io::Result;
|
||||
use rusqlite::Connection;
|
||||
use crate::db::{messages, users};
|
||||
use crate::chat::types::PackedMessage;
|
||||
use serde_json::json;
|
||||
pub fn start_app(request: StartAppReq, server_sender: &SP) -> Result<()> {
|
||||
Ok(())
|
||||
//sending *JSON*, what everything is OK
|
||||
|
@ -14,9 +17,16 @@ pub fn stop_app(request: StopAppReq, conn: &Connection, server_sender: &SP) -> R
|
|||
}
|
||||
|
||||
pub fn load_users(request: LoadUsersReq, conn: &Connection, server_sender: &SP) -> Result<()> {
|
||||
let users = users::load_all_users(conn);
|
||||
unimplemented!();
|
||||
//sending *JSON*
|
||||
let jsoned_users: Vec<_> = users::load_all_users(conn)
|
||||
.unwrap()
|
||||
.into_iter()
|
||||
.map(|x| x.to_jsonable())
|
||||
.collect();
|
||||
let users: String = serde_json::to_string(&UserList {
|
||||
users: jsoned_users,
|
||||
}).unwrap();
|
||||
let _ =server_sender.send(PackedMessage::ToClient(users)).unwrap();
|
||||
Ok(())
|
||||
}
|
||||
pub fn send_message(request: SendMessageReq, conn: &Connection, server_sender: &SP) -> Result<()> {
|
||||
unimplemented!()
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
|
||||
use crate::db::types::User as SqliteUser;
|
||||
use serde_derive::{Deserialize, Serialize};
|
||||
use crate::db::types::SignKey;
|
||||
pub type InsertKey = String;
|
||||
#[derive(Serialize, Deserialize)]
|
||||
enum ResponseType{
|
||||
Error,
|
||||
|
@ -25,3 +27,19 @@ struct AppError{
|
|||
struct ActionStatus{
|
||||
|
||||
}
|
||||
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct User {
|
||||
pub id: u32,
|
||||
pub name: String,
|
||||
pub sign_key: SignKey,
|
||||
pub insert_key: InsertKey,
|
||||
pub messages_count: u32,
|
||||
}
|
||||
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct UserList{
|
||||
pub users: Vec<User>
|
||||
}
|
||||
|
|
|
@ -37,7 +37,3 @@ pub async fn request_selector(json: String, server_sender: &SP, conn: &Connectio
|
|||
))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn is_making_correct_jsons() {
|
||||
let json = from_str::<StopApp>("{\"req_type\":\"StartAppReq\"}").unwrap();
|
||||
}
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
use chrono::prelude::*;
|
||||
use fcpv2::types::{traits::FcpRequest, SSK};
|
||||
use serde_derive::{Serialize, Deserialize};
|
||||
|
||||
use crate::api::response::User as JsonableUser;
|
||||
|
||||
pub const DB_PATH: &str = "hole.db";
|
||||
|
||||
pub type SignKey = String;
|
||||
pub type InsertKey = SSK;
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct User {
|
||||
pub id: u32,
|
||||
pub name: String,
|
||||
|
@ -16,7 +18,19 @@ pub struct User {
|
|||
pub messages_count: u32,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
impl User{
|
||||
pub fn to_jsonable(self) -> JsonableUser{
|
||||
JsonableUser{
|
||||
id: self.id,
|
||||
name: self.name,
|
||||
sign_key: self.sign_key,
|
||||
insert_key: SSK::convert(&self.insert_key),
|
||||
messages_count: self.messages_count
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub struct Message {
|
||||
pub id: u32,
|
||||
pub date: NaiveDateTime,
|
||||
|
|
Loading…
Reference in a new issue