1
0
mirror of https://github.com/pcvolkmer/arsnova-client.git synced 2025-04-19 19:16:51 +00:00

display error messages in example

This commit is contained in:
Paul-Christian Volkmer 2024-05-11 12:01:23 +02:00
parent 47a8bacf47
commit 1769809e1a

View File

@ -52,15 +52,18 @@ pub struct Cli {
} }
#[tokio::main(worker_threads = 2)] #[tokio::main(worker_threads = 2)]
async fn main() -> Result<(), ()> { async fn main() -> Result<(), String> {
let cli = Cli::parse(); let cli = Cli::parse();
let client = match Client::new(&cli.url) { let client = match Client::new(&cli.url) {
Ok(client) => client, Ok(client) => client,
Err(_) => return Err(()), Err(_) => return Err("Cannot create client!".to_string()),
}; };
let client = client.guest_login().await.map_err(|_| ())?; let client = client
.guest_login()
.await
.map_err(|_| "Cannot login!".to_string())?;
let (in_tx, in_rx) = channel::<Feedback>(10); let (in_tx, in_rx) = channel::<Feedback>(10);
let (out_tx, out_rx) = channel::<FeedbackValue>(10); let (out_tx, out_rx) = channel::<FeedbackValue>(10);
@ -70,15 +73,25 @@ async fn main() -> Result<(), ()> {
.send(client.get_feedback(&cli.room).await.unwrap()) .send(client.get_feedback(&cli.room).await.unwrap())
.await; .await;
stdout().execute(EnterAlternateScreen).map_err(|_| ())?; stdout()
enable_raw_mode().map_err(|_| ())?; .execute(EnterAlternateScreen)
let mut terminal = Terminal::new(CrosstermBackend::new(stdout())).map_err(|_| ())?; .map_err(|_| String::new())?;
terminal.clear().map_err(|_| ())?; enable_raw_mode().map_err(|_| String::new())?;
let mut terminal = Terminal::new(CrosstermBackend::new(stdout())).map_err(|_| String::new())?;
terminal.clear().map_err(|_| String::new())?;
let l1 = client.on_feedback_changed(&cli.room, FeedbackHandler::SenderReceiver(in_tx, out_rx)); let l1 = client.on_feedback_changed(&cli.room, FeedbackHandler::SenderReceiver(in_tx, out_rx));
let room_info = client.get_room_info(&cli.room).await.map_err(|_| ())?; let room_info = client.get_room_info(&cli.room).await.map_err(|_| {
let room_stats = client.get_room_stats(&cli.room).await.map_err(|_| ())?; let _ = stdout().execute(LeaveAlternateScreen).map_err(|_| ());
let _ = disable_raw_mode().map_err(|_| ()).map_err(|_| ());
"Cannot request room information!".to_string()
})?;
let room_stats = client.get_room_stats(&cli.room).await.map_err(|_| {
let _ = stdout().execute(LeaveAlternateScreen).map_err(|_| ());
let _ = disable_raw_mode().map_err(|_| ()).map_err(|_| ());
"Cannot request room stats!".to_string()
})?;
let title = format!( let title = format!(
"Live Feedback: {} ({}) - 👥: {}", "Live Feedback: {} ({}) - 👥: {}",
room_info.name, room_info.short_id, room_stats.room_user_count room_info.name, room_info.short_id, room_stats.room_user_count