refactor: remove persister abstraction layer
Inline persistence logic directly into game stores and handlers: - game/persist.go: DB mapping methods on GameStore and GameInstance - snake/persist.go: DB mapping methods on SnakeStore and SnakeGameInstance - Chat persistence inlined into c4game handlers - Delete db/persister.go (GamePersister, SnakePersister, ChatPersister) - Stores now take *repository.Queries directly instead of Persister interface
This commit is contained in:
10
main.go
10
main.go
@@ -71,20 +71,16 @@ func run(ctx context.Context) error {
|
||||
defer cleanupNATS()
|
||||
|
||||
// Game stores
|
||||
store := game.NewGameStore()
|
||||
store.SetPersister(db.NewGamePersister(queries))
|
||||
store := game.NewGameStore(queries)
|
||||
store.SetNotifyFunc(func(gameID string) {
|
||||
nc.Publish("game."+gameID, nil) //nolint:errcheck // best-effort notification
|
||||
})
|
||||
|
||||
snakeStore := snake.NewSnakeStore()
|
||||
snakeStore.SetPersister(db.NewSnakePersister(queries))
|
||||
snakeStore := snake.NewSnakeStore(queries)
|
||||
snakeStore.SetNotifyFunc(func(gameID string) {
|
||||
nc.Publish("snake."+gameID, nil) //nolint:errcheck // best-effort notification
|
||||
})
|
||||
|
||||
chatPersister := db.NewChatPersister(queries)
|
||||
|
||||
// Router
|
||||
logger := log.Logger
|
||||
r := chi.NewMux()
|
||||
@@ -94,7 +90,7 @@ func run(ctx context.Context) error {
|
||||
sessionManager.LoadAndSave,
|
||||
)
|
||||
|
||||
if err := router.SetupRoutes(r, queries, sessionManager, nc, store, snakeStore, chatPersister, assets); err != nil {
|
||||
if err := router.SetupRoutes(r, queries, sessionManager, nc, store, snakeStore, assets); err != nil {
|
||||
return fmt.Errorf("setting up routes: %w", err)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user