Leaving servers

This commit is contained in:
2024-10-13 22:27:20 -04:00
Unverified
parent 8168f19b5f
commit 62c7e392dd
4 changed files with 93 additions and 9 deletions

View File

@@ -5,8 +5,9 @@ use realm_auth::types::RealmAuthClient;
use realm_shared::types::ErrorCode::RPCError;
use regex::Regex;
use tracing::log::*;
use realm_server::types::Room;
use realm_server::types::{RealmChatClient, Room};
use realm_shared::stoken;
use realm_shared::types::ErrorCode;
use crate::app::RealmApp;
use crate::types::CServer;
@@ -76,6 +77,29 @@ pub fn servers(app: &mut RealmApp, ctx: &Context) {
if app.current_user.is_some() && ui.button("+").clicked() {
app.server_window_open = true;
}
if !app.selected_serverid.is_empty() && ui.button("-").clicked() {
let server = app.active_servers.clone().unwrap().into_iter().find(|s| s.server_id.eq(&app.selected_serverid)).unwrap();
let token = app.current_user.as_ref().unwrap().token.clone();
let userid = app.current_user.as_ref().unwrap().username.clone();
let send_channel = app.leave_server_channel.0.clone();
let _handle = tokio::spawn(async move {
let result = server.tarpc_conn.leave_server(
context::current(),
stoken(&token, &server.server_id, &server.domain, server.port),
userid
).await;
match result {
Ok(r) => {
match r {
Ok(_) => send_channel.send(Ok((server.server_id.clone(), server.domain.clone(), server.port))).unwrap(),
Err(e) => send_channel.send(Err(e)).unwrap()
}
},
Err(_) => send_channel.send(Err(RPCError)).unwrap(),
}
});
}
});
ui.separator();