feat(auth): Add logout route
This commit is contained in:
@@ -97,3 +97,31 @@ func GetSessionCache(sessionID string) *SessionDetails {
|
||||
masterlog.Debug("Session retrieved from cache", map[string]interface{}{"session_id": sessionID, "user_id": sessionDetails.UserID})
|
||||
return &sessionDetails
|
||||
}
|
||||
|
||||
func DeleteSession(sessionID string) error {
|
||||
masterlog.Debug("Deleting session from database and cache", map[string]interface{}{"session_id": sessionID})
|
||||
if err := DeleteSessionCache(sessionID); err != nil {
|
||||
masterlog.Debug("Failed to delete session from cache", map[string]interface{}{"error": err.Error(), "session_id": sessionID})
|
||||
return err
|
||||
}
|
||||
if err := database.DB.Where("id = ?", sessionID).Delete(&models.Session{}).Error; err != nil {
|
||||
masterlog.Debug("Failed to delete session from database", map[string]interface{}{"error": err.Error(), "session_id": sessionID})
|
||||
return err
|
||||
}
|
||||
masterlog.Debug("Session deleted from database and cache", map[string]interface{}{"session_id": sessionID})
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeleteSessionCache(sessionID string) error {
|
||||
masterlog.Debug("Deleting session from cache", map[string]interface{}{"session_id": sessionID})
|
||||
if cache.Cache.Client == nil {
|
||||
masterlog.Debug("Redis client not initialized", map[string]interface{}{"session_id": sessionID})
|
||||
return nil
|
||||
}
|
||||
if err := cache.Cache.Client.Do(cache.Cache.Context, cache.Cache.Client.B().Del().Key(sessionID).Build()).Error(); err != nil {
|
||||
masterlog.Debug("Failed to delete session from cache", map[string]interface{}{"error": err.Error(), "session_id": sessionID})
|
||||
return err
|
||||
}
|
||||
masterlog.Debug("Session deleted from cache", map[string]interface{}{"session_id": sessionID})
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user