implemented user and started security
This commit is contained in:
parent
c17cdd888a
commit
21e5240f74
13 changed files with 642 additions and 220 deletions
|
@ -3,6 +3,12 @@ pub struct Ping {
|
|||
pub content: String,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Authenticate {
|
||||
pub id: u64,
|
||||
pub pass: String,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ChannelList {}
|
||||
|
||||
|
@ -92,6 +98,8 @@ pub struct UserSetPass {
|
|||
#[derive(Debug)]
|
||||
pub enum ClientRequest {
|
||||
Ping(Ping),
|
||||
Authenticate(Authenticate),
|
||||
|
||||
ChannelList(ChannelList),
|
||||
ChannelCreate(ChannelCreate),
|
||||
ChannelDelete(ChannelDelete),
|
||||
|
@ -117,6 +125,10 @@ impl ClientRequest {
|
|||
Self::Ping(Ping { content })
|
||||
}
|
||||
|
||||
pub fn new_authenticate(id: u64, pass: String) -> Self {
|
||||
Self::Authenticate(Authenticate { id, pass })
|
||||
}
|
||||
|
||||
pub fn new_channel_list() -> Self {
|
||||
Self::ChannelList(ChannelList {})
|
||||
}
|
||||
|
@ -185,51 +197,31 @@ impl ClientRequest {
|
|||
use repr::Command::*;
|
||||
let command: repr::Command = serde_json::from_str(line).ok()?;
|
||||
let mapped = match command {
|
||||
ping { content } => Self::Ping(Ping { content }),
|
||||
channel_list {} => Self::ChannelList(ChannelList {}),
|
||||
channel_create { name } => Self::ChannelCreate(ChannelCreate { name }),
|
||||
channel_delete { id: channel_id } => {
|
||||
Self::ChannelDelete(ChannelDelete { id: channel_id })
|
||||
}
|
||||
channel_get_name { id: channel_id } => {
|
||||
Self::ChannelGetName(ChannelGetName { id: channel_id })
|
||||
}
|
||||
channel_set_name {
|
||||
id: channel_id,
|
||||
name,
|
||||
} => Self::ChannelSetName(ChannelSetName {
|
||||
id: channel_id,
|
||||
name,
|
||||
}),
|
||||
message_list { channel_id } => Self::MessageList(MessageList { channel_id }),
|
||||
ping { content } => Self::new_ping(content),
|
||||
authenticate { id, pass } => Self::new_authenticate(id, pass),
|
||||
channel_list {} => Self::new_channel_list(),
|
||||
channel_create { name } => Self::new_channel_create(name),
|
||||
channel_delete { id } => Self::new_channel_delete(id),
|
||||
channel_get_name { id } => Self::new_channel_get_name(id),
|
||||
channel_set_name { id, name } => Self::new_channel_set_name(id, name),
|
||||
message_list { channel_id } => Self::new_message_list(channel_id),
|
||||
message_create {
|
||||
channel_id,
|
||||
content,
|
||||
} => Self::MessageCreate(MessageCreate {
|
||||
channel_id,
|
||||
content,
|
||||
}),
|
||||
message_delete { id, channel_id } => {
|
||||
Self::MessageDelete(MessageDelete { id, channel_id })
|
||||
}
|
||||
message_get_content { id, channel_id } => {
|
||||
Self::MessageGetContent(MessageGetContent { id, channel_id })
|
||||
}
|
||||
} => Self::new_message_create(channel_id, content),
|
||||
message_delete { id, channel_id } => Self::new_message_delete(channel_id, id),
|
||||
message_get_content { id, channel_id } => Self::new_message_get_content(channel_id, id),
|
||||
message_set_content {
|
||||
id,
|
||||
channel_id,
|
||||
content,
|
||||
} => Self::MessageSetContent(MessageSetContent {
|
||||
content,
|
||||
id,
|
||||
channel_id,
|
||||
}),
|
||||
user_list {} => Self::UserList(UserList {}),
|
||||
user_create { name, pass } => Self::UserCreate(UserCreate { name, pass }),
|
||||
user_delete { id } => Self::UserDelete(UserDelete { id }),
|
||||
user_get_name { id } => Self::UserGetName(UserGetName { id }),
|
||||
user_set_name { id, name } => Self::UserSetName(UserSetName { id, name }),
|
||||
user_set_pass { id, pass } => Self::UserSetPass(UserSetPass { id, pass }),
|
||||
} => Self::new_message_set_content(channel_id, id, content),
|
||||
user_list {} => Self::new_user_list(),
|
||||
user_create { name, pass } => Self::new_user_create(name, pass),
|
||||
user_delete { id } => Self::new_user_delete(id),
|
||||
user_get_name { id } => Self::new_user_get_name(id),
|
||||
user_set_name { id, name } => Self::new_user_set_name(id, name),
|
||||
user_set_pass { id, pass } => Self::new_user_set_pass(id, pass),
|
||||
};
|
||||
Some(mapped)
|
||||
}
|
||||
|
@ -238,6 +230,7 @@ impl ClientRequest {
|
|||
use repr::Command::*;
|
||||
let mapped = match self {
|
||||
Self::Ping(Ping { content }) => ping { content },
|
||||
Self::Authenticate(Authenticate { id, pass }) => authenticate { id, pass },
|
||||
Self::ChannelList(ChannelList {}) => repr::Command::channel_list {},
|
||||
Self::ChannelCreate(ChannelCreate { name }) => channel_create { name },
|
||||
Self::ChannelDelete(ChannelDelete { id: channel_id }) => {
|
||||
|
@ -298,6 +291,10 @@ mod repr {
|
|||
ping {
|
||||
content: String,
|
||||
},
|
||||
authenticate {
|
||||
id: u64,
|
||||
pass: String,
|
||||
},
|
||||
channel_list {},
|
||||
channel_create {
|
||||
name: String,
|
||||
|
|
|
@ -10,5 +10,5 @@ mod tests {
|
|||
pub use client::ClientRequest;
|
||||
pub mod client;
|
||||
|
||||
pub use server::ServerRequest;
|
||||
pub use server::ServerEvent;
|
||||
pub mod server;
|
||||
|
|
|
@ -94,7 +94,7 @@ pub struct UserSetPass {
|
|||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum ServerRequest {
|
||||
pub enum ServerEvent {
|
||||
Pong(Pong),
|
||||
|
||||
ChannelCreate(ChannelCreate),
|
||||
|
@ -117,7 +117,7 @@ pub enum ServerRequest {
|
|||
UserSetPass(UserSetPass),
|
||||
}
|
||||
|
||||
impl ServerRequest {
|
||||
impl ServerEvent {
|
||||
pub fn new_pong(content: String) -> Self {
|
||||
Self::Pong(Pong { content })
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue