From 156e444c99d05e2ad069be5846fe751199adcbde Mon Sep 17 00:00:00 2001 From: Jim Hodapp Date: Mon, 7 Apr 2025 16:53:52 -0500 Subject: [PATCH 1/2] Refactor the backend API to match what the frontend already correctly expects for logout --> delete /user_sessions/:id --- web/src/controller/user_session_controller.rs | 8 ++++---- web/src/router.rs | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/web/src/controller/user_session_controller.rs b/web/src/controller/user_session_controller.rs index 7e343398..46a27f15 100644 --- a/web/src/controller/user_session_controller.rs +++ b/web/src/controller/user_session_controller.rs @@ -81,10 +81,10 @@ pub async fn login( /// Logs the user out of the platform by destroying their session. /// Test this with curl: curl -v \ /// --header "Cookie: id=07bbbe54-bd35-425f-8e63-618a8d8612df" \ -/// --request GET http://localhost:4000/logout +/// --request DELETE http://localhost:4000/user_sessions/:id #[utoipa::path( get, -path = "/logout", +path = "/delete", responses( (status = 200, description = "Successfully logged out"), (status = 401, description = "Unauthorized"), @@ -94,8 +94,8 @@ security( ("cookie_auth" = []) ) )] -pub async fn logout(mut auth_session: AuthSession) -> impl IntoResponse { - debug!("UserSessionController::logout()"); +pub async fn delete(mut auth_session: AuthSession) -> impl IntoResponse { + trace!("UserSessionController::delete()"); match auth_session.logout().await { Ok(_) => StatusCode::OK.into_response(), Err(_) => StatusCode::INTERNAL_SERVER_ERROR.into_response(), diff --git a/web/src/router.rs b/web/src/router.rs index ad5024e0..1260b7ce 100644 --- a/web/src/router.rs +++ b/web/src/router.rs @@ -66,7 +66,7 @@ use self::organization::coaching_relationship_controller; overarching_goal_controller::update_status, user_controller::update, user_session_controller::login, - user_session_controller::logout, + user_session_controller::delete, jwt_controller::generate_collab_token, ), components( @@ -345,7 +345,7 @@ pub fn user_routes(app_state: AppState) -> Router { pub fn user_session_protected_routes() -> Router { Router::new() .route("/protected", get(user_session_controller::protected)) - .route("/logout", delete(user_session_controller::logout)) + .route("/user_sessions/:id", delete(user_session_controller::delete)) .route_layer(login_required!(Backend, login_url = "/login")) } From 3489a8f30049a8f754f11bf180db739b0b5852c6 Mon Sep 17 00:00:00 2001 From: Jim Hodapp Date: Mon, 7 Apr 2025 16:58:06 -0500 Subject: [PATCH 2/2] cargo fmt --- web/src/router.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/web/src/router.rs b/web/src/router.rs index 1260b7ce..41f24134 100644 --- a/web/src/router.rs +++ b/web/src/router.rs @@ -345,7 +345,10 @@ pub fn user_routes(app_state: AppState) -> Router { pub fn user_session_protected_routes() -> Router { Router::new() .route("/protected", get(user_session_controller::protected)) - .route("/user_sessions/:id", delete(user_session_controller::delete)) + .route( + "/user_sessions/:id", + delete(user_session_controller::delete), + ) .route_layer(login_required!(Backend, login_url = "/login")) }