From c9bff789de213dd21a937c7d0af12d774b26891f Mon Sep 17 00:00:00 2001 From: Martin Loffler Date: Thu, 1 Apr 2021 15:57:48 +0200 Subject: [PATCH] Fixed room creation failure in join_call --- src/routes/channels/join_call.rs | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/routes/channels/join_call.rs b/src/routes/channels/join_call.rs index 84c113d1..fc3254f0 100644 --- a/src/routes/channels/join_call.rs +++ b/src/routes/channels/join_call.rs @@ -30,21 +30,28 @@ pub async fn req(user: User, target: Ref) -> Result { // - Check if the room exists. // - If not, create it. let client = reqwest::Client::new(); - if let Err(error) = client + let result = client .get(&format!("{}/room/{}", *VOSO_URL, target.id())) .header(reqwest::header::AUTHORIZATION, VOSO_MANAGE_TOKEN.to_string()) .send() - .await { - if error.status() == Some(reqwest::StatusCode::NOT_FOUND) { - if let Err(_) = client - .post(&format!("{}/room/{}", *VOSO_URL, target.id())) - .header(reqwest::header::AUTHORIZATION, VOSO_MANAGE_TOKEN.to_string()) - .send() - .await { - return Err(Error::VosoUnavailable) + .await; + + match result { + Err(_) => return Err(Error::VosoUnavailable), + Ok(result) => { + match result.status() { + reqwest::StatusCode::OK => (), + reqwest::StatusCode::NOT_FOUND => { + if let Err(_) = client + .post(&format!("{}/room/{}", *VOSO_URL, target.id())) + .header(reqwest::header::AUTHORIZATION, VOSO_MANAGE_TOKEN.to_string()) + .send() + .await { + return Err(Error::VosoUnavailable) + } + }, + _ => return Err(Error::VosoUnavailable) } - } else { - return Err(Error::VosoUnavailable) } }