package websocket import ( "encoding/json" "git.smsvc.net/pomodoro/GoTomato/internal/pomodoro" "git.smsvc.net/pomodoro/GoTomato/pkg/models" "github.com/gorilla/websocket" "log" ) // handleClientCommands listens for commands from WebSocket clients and dispatches to the timer. func handleClientCommands(ws *websocket.Conn) { for { _, message, err := ws.ReadMessage() if err != nil { log.Printf("Client disconnected: %v", err) delete(Clients, ws) break } // Handle incoming commands var command models.ClientCommand err = json.Unmarshal(message, &command) if err != nil { log.Printf("Error unmarshalling command: %v", err) continue } // Process the command switch command.Command { case "start": if !pomodoro.IsTimerRunning() { go pomodoro.RunPomodoroTimer(Clients) // Start the timer with the list of clients } case "stop": if pomodoro.IsTimerRunning() { pomodoro.StopTimer() // Stop the timer in the Pomodoro package } } } }