From 72843ff99a9530e11b07f85b8a0488cebd590b7f Mon Sep 17 00:00:00 2001 From: Araozu Date: Sat, 23 Sep 2023 11:03:29 -0500 Subject: [PATCH] Small refactor --- backend/src/online_classroom/json_result.rs | 8 +++---- backend/src/online_classroom/mod.rs | 25 ++++----------------- backend/src/online_classroom/session.rs | 5 ++--- backend/src/online_classroom/users.rs | 2 +- 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/backend/src/online_classroom/json_result.rs b/backend/src/online_classroom/json_result.rs index f19e7f5..78bc211 100644 --- a/backend/src/online_classroom/json_result.rs +++ b/backend/src/online_classroom/json_result.rs @@ -13,11 +13,11 @@ pub struct JsonError { } impl JsonResult { - pub fn error(reason: String) -> Json> { - Json(JsonResult::Error(JsonError { reason })) - } - pub fn ok(data: A) -> Json> { Json(JsonResult::Ok(data)) } + + pub fn err(reason: String) -> Json> { + Json(JsonResult::Error(JsonError { reason })) + } } diff --git a/backend/src/online_classroom/mod.rs b/backend/src/online_classroom/mod.rs index 0ff190c..5685b46 100644 --- a/backend/src/online_classroom/mod.rs +++ b/backend/src/online_classroom/mod.rs @@ -4,34 +4,17 @@ use reqwest::Client; use rocket::{http::Status, serde::json::Json}; use serde::{Deserialize, Serialize}; -use self::session::ensure_session; +use self::{json_result::JsonResult, session::ensure_session}; pub mod json_result; mod session; pub mod users; - - -#[derive(Debug, Serialize, Deserialize)] -pub enum ConnectionResult { - Ok(), - Error(ConnectionError), -} -#[derive(Debug, Serialize, Deserialize)] -pub struct ConnectionError { - reason: String, -} -fn new_error(reason: String) -> ConnectionResult { - ConnectionResult::Error(ConnectionError { reason }) -} - /// Tries to connect to the online classroom, and get a session cookie #[get("/classroom/connect")] -pub async fn connection() -> (Status, Json) { +pub async fn connection() -> (Status, Json>) { match ensure_session().await { - Ok(_) => (Status::Ok, Json(ConnectionResult::Ok())), - Err(err) => (Status::Ok, Json(new_error(err))), + Ok(_) => (Status::Ok, JsonResult::ok(())), + Err(err) => (Status::Ok, JsonResult::err(err)), } } - - diff --git a/backend/src/online_classroom/session.rs b/backend/src/online_classroom/session.rs index d2af07f..310658d 100644 --- a/backend/src/online_classroom/session.rs +++ b/backend/src/online_classroom/session.rs @@ -7,11 +7,10 @@ static SESSION_COOKIE: OnceCell = OnceCell::new(); static SESSION_TIME: OnceCell = OnceCell::new(); /// Makes a request to the online classroom, and returns the html string -pub async fn request(url: String) -> Result { - todo!() +pub async fn _request(url: String) -> Result { + Ok(url) } - /// Makes sure that the session cookie is set, and that it is valid pub async fn ensure_session() -> Result<(), String> { let last_usage_time = match SESSION_TIME.get() { diff --git a/backend/src/online_classroom/users.rs b/backend/src/online_classroom/users.rs index 26167ff..d56a9bd 100644 --- a/backend/src/online_classroom/users.rs +++ b/backend/src/online_classroom/users.rs @@ -1,6 +1,6 @@ use rocket::{http::Status, serde::json::Json}; -use super::{ json_result::JsonResult}; +use super::json_result::JsonResult; // Instead of requesting pages and managing session & cookies manually, // create a wrapper that: