made progress on user

This commit is contained in:
mb 2022-08-22 17:09:41 +03:00
parent 4588a50d75
commit f039b9a6e1
5 changed files with 285 additions and 62 deletions

View file

@ -53,6 +53,42 @@ pub struct MessageSetContent {
pub content: String,
}
#[derive(Debug)]
pub struct UserList {}
#[derive(Debug)]
pub struct UserCreate {
pub name: String,
pub pass: String,
}
#[derive(Debug)]
pub struct UserDelete {
pub id: u64,
}
#[derive(Debug)]
pub struct UserGetName {
pub id: u64,
}
#[derive(Debug)]
pub struct UserSetName {
pub id: u64,
pub name: String,
}
#[derive(Debug)]
pub struct UserGetPass {
pub id: u64,
}
#[derive(Debug)]
pub struct UserSetPass {
pub id: u64,
pub pass: String,
}
#[derive(Debug)]
pub enum ClientRequest {
Ping(Ping),
@ -61,11 +97,19 @@ pub enum ClientRequest {
ChannelDelete(ChannelDelete),
ChannelGetName(ChannelGetName),
ChannelSetName(ChannelSetName),
MessageList(MessageList),
MessageCreate(MessageCreate),
MessageDelete(MessageDelete),
MessageGetContent(MessageGetContent),
MessageSetContent(MessageSetContent),
UserList(UserList),
UserCreate(UserCreate),
UserDelete(UserDelete),
UserGetName(UserGetName),
UserSetName(UserSetName),
UserSetPass(UserSetPass),
}
impl ClientRequest {
@ -162,6 +206,12 @@ impl ClientRequest {
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 }),
};
Some(mapped)
}
@ -208,6 +258,12 @@ impl ClientRequest {
channel_id,
content,
},
Self::UserList(UserList {}) => user_list {},
Self::UserCreate(UserCreate { name, pass }) => user_create { name, pass },
Self::UserDelete(UserDelete { id }) => user_delete { id },
Self::UserGetName(UserGetName { id }) => user_get_name { id },
Self::UserSetName(UserSetName { id, name }) => user_set_name { id, name },
Self::UserSetPass(UserSetPass { id, pass }) => user_set_pass { id, pass },
};
serde_json::to_string(&mapped).unwrap()
}
@ -258,5 +314,24 @@ mod repr {
id: u64,
content: String,
},
user_list {},
user_create {
name: String,
pass: String,
},
user_delete {
id: u64,
},
user_get_name {
id: u64,
},
user_set_name {
id: u64,
name: String,
},
user_set_pass {
id: u64,
pass: String,
},
}
}

View file

@ -60,19 +60,59 @@ pub struct MessageSetContent {
pub content: String,
}
#[derive(Debug)]
pub struct UserList {}
#[derive(Debug)]
pub struct UserCreate {
pub id: u64,
pub name: String,
}
#[derive(Debug)]
pub struct UserDelete {
pub id: u64,
}
#[derive(Debug)]
pub struct UserGetName {
pub id: u64,
pub name: Option<String>,
}
#[derive(Debug)]
pub struct UserSetName {
pub id: u64,
pub name: String,
}
#[derive(Debug)]
pub struct UserSetPass {
pub id: u64,
}
#[derive(Debug)]
pub enum ServerRequest {
Pong(Pong),
ChannelCreate(ChannelCreate),
ChannelDelete(ChannelDelete),
ChannelList(ChannelList),
ChannelGetName(ChannelGetName),
ChannelSetName(ChannelSetName),
MessageList(MessageList),
MessageCreate(MessageCreate),
MessageDelete(MessageDelete),
MessageGetContent(MessageGetContent),
MessageSetContent(MessageSetContent),
UserList(UserList),
UserCreate(UserCreate),
UserDelete(UserDelete),
UserGetName(UserGetName),
UserSetName(UserSetName),
UserSetPass(UserSetPass),
}
impl ServerRequest {
@ -181,6 +221,12 @@ impl ServerRequest {
content,
id,
}),
user_list {} => Self::UserList(UserList {}),
user_create { id, name } => Self::UserCreate(UserCreate { id, name }),
user_delete { id } => Self::UserDelete(UserDelete { id }),
user_get_name { id, name } => Self::UserGetName(UserGetName { id, name }),
user_set_name { id, name } => Self::UserSetName(UserSetName { id, name }),
user_set_pass { id } => Self::UserSetPass(UserSetPass { id }),
};
Some(mapped)
}
@ -232,7 +278,14 @@ impl ServerRequest {
id,
content,
},
Self::UserList(UserList {}) => user_list {},
Self::UserCreate(UserCreate { id, name }) => user_create { id, name },
Self::UserDelete(UserDelete { id }) => user_delete { id },
Self::UserGetName(UserGetName { id, name }) => user_get_name { id, name },
Self::UserSetName(UserSetName { id, name }) => user_set_name { id, name },
Self::UserSetPass(UserSetPass { id }) => user_set_pass { id },
};
serde_json::to_string(&mapped).unwrap()
}
}
@ -289,5 +342,24 @@ mod repr {
id: u64,
content: String,
},
user_list {},
user_create {
id: u64,
name: String,
},
user_delete {
id: u64,
},
user_get_name {
id: u64,
name: Option<String>,
},
user_set_name {
id: u64,
name: String,
},
user_set_pass {
id: u64,
},
}
}