Apply the same service pattern from Connect 4 to Snake game. Handlers now receive the service and call its methods instead of managing NATS connections directly. Also aligns heartbeat to 10s and removes ConnectionIndicator patching (matching C4 changes).
22 lines
812 B
Go
22 lines
812 B
Go
// Package snakegame handles snake game routes, SSE event streaming, and chat.
|
|
package snakegame
|
|
|
|
import (
|
|
"github.com/alexedwards/scs/v2"
|
|
"github.com/go-chi/chi/v5"
|
|
|
|
"github.com/ryanhamamura/games/features/snakegame/services"
|
|
"github.com/ryanhamamura/games/snake"
|
|
)
|
|
|
|
func SetupRoutes(router chi.Router, snakeStore *snake.SnakeStore, svc *services.GameService, sessions *scs.SessionManager) {
|
|
router.Route("/snake/{id}", func(r chi.Router) {
|
|
r.Get("/", HandleSnakePage(snakeStore, svc, sessions))
|
|
r.Get("/events", HandleSnakeEvents(snakeStore, svc, sessions))
|
|
r.Post("/dir", HandleSetDirection(snakeStore, sessions))
|
|
r.Post("/chat", HandleSendChat(snakeStore, svc, sessions))
|
|
r.Post("/join", HandleSetNickname(snakeStore, sessions))
|
|
r.Post("/rematch", HandleRematch(snakeStore, sessions))
|
|
})
|
|
}
|