package api import ( "net/http" "github.com/gin-gonic/gin" "hightube/internal/db" "hightube/internal/model" ) // GetMyRoom returns the room details for the currently authenticated user func GetMyRoom(c *gin.Context) { userID, _ := c.Get("user_id") var room model.Room if err := db.DB.Where("user_id = ?", userID).First(&room).Error; err != nil { c.JSON(http.StatusNotFound, gin.H{"error": "Room not found"}) return } c.JSON(http.StatusOK, gin.H{ "room_id": room.ID, "title": room.Title, "stream_key": room.StreamKey, "is_active": room.IsActive, }) } // GetActiveRooms returns a list of all currently active live rooms func GetActiveRooms(c *gin.Context) { var rooms []model.Room // Fetch rooms where is_active is true if err := db.DB.Where("is_active = ?", true).Find(&rooms).Error; err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to fetch active rooms"}) return } // Return safe information (do not leak stream keys) var result []map[string]interface{} for _, r := range rooms { result = append(result, map[string]interface{}{ "room_id": r.ID, "title": r.Title, "user_id": r.UserID, }) } c.JSON(http.StatusOK, gin.H{"active_rooms": result}) }