diff --git a/modules/structs/user.go b/modules/structs/user.go index 11f5a2d..d2f88e9 100644 --- a/modules/structs/user.go +++ b/modules/structs/user.go @@ -36,5 +36,5 @@ type UserResponse struct { } type UserSignOutSessionRequest struct { - SessionId string + IdForDeletion string } diff --git a/routers/router/api/v1/user/session.go b/routers/router/api/v1/user/session.go index ad06035..d44426e 100644 --- a/routers/router/api/v1/user/session.go +++ b/routers/router/api/v1/user/session.go @@ -1,8 +1,9 @@ package user import ( + "janex/admin-dashboard-backend/modules/database" "janex/admin-dashboard-backend/modules/structs" - "janex/admin-dashboard-backend/modules/utils" + "janex/admin-dashboard-backend/socketclients" "github.com/gofiber/fiber/v2" "github.com/rs/zerolog/log" @@ -16,9 +17,15 @@ func SignOutSession(c *fiber.Ctx) error { return c.SendStatus(fiber.StatusBadRequest) } - log.Debug().Msgf("params %s", params.SessionId) + var userSession structs.UserSession - log.Debug().Msgf("userId %s", utils.GetXAuhorizationHeader(c)) + database.DB.First(&userSession, "id_for_deletion = ?", params.IdForDeletion) + + if userSession.Id != "" { + database.DB.Delete(&structs.UserSession{}, "id = ?", userSession.Id) + + socketclients.CloseAllUserSessionConnections(userSession.Id) + } return c.SendStatus(fiber.StatusOK) } diff --git a/routers/router/router.go b/routers/router/router.go index 522e2f4..af47e49 100644 --- a/routers/router/router.go +++ b/routers/router/router.go @@ -15,7 +15,7 @@ func SetupRoutes(app *fiber.App) { u := v1.Group("/user") u.Post("/auth/login", user.UserLogin) u.Delete("/auth/logout", user.UserLogout) - u.Delete("/session/:sessionId", user.SignOutSession) + u.Delete("/session/:idForDeletion", userSessionValidation, user.SignOutSession) } func userSessionValidation(c *fiber.Ctx) error {