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:
@@ -61,16 +61,16 @@ func (si *SnakeGameInstance) countdownPhase() {
|
||||
si.initGame()
|
||||
si.game.Status = StatusInProgress
|
||||
|
||||
if si.persister != nil {
|
||||
si.persister.SaveSnakeGame(si.game)
|
||||
if si.queries != nil {
|
||||
si.saveSnakeGame(si.game)
|
||||
}
|
||||
si.gameMu.Unlock()
|
||||
si.notify()
|
||||
return
|
||||
}
|
||||
|
||||
if si.persister != nil {
|
||||
si.persister.SaveSnakeGame(si.game)
|
||||
if si.queries != nil {
|
||||
si.saveSnakeGame(si.game)
|
||||
}
|
||||
si.gameMu.Unlock()
|
||||
si.notify()
|
||||
@@ -123,8 +123,8 @@ func (si *SnakeGameInstance) gamePhase() {
|
||||
// Inactivity timeout
|
||||
if time.Since(lastInput) > inactivityLimit {
|
||||
si.game.Status = StatusFinished
|
||||
if si.persister != nil {
|
||||
si.persister.SaveSnakeGame(si.game)
|
||||
if si.queries != nil {
|
||||
si.saveSnakeGame(si.game)
|
||||
}
|
||||
si.gameMu.Unlock()
|
||||
si.notify()
|
||||
@@ -195,8 +195,8 @@ func (si *SnakeGameInstance) gamePhase() {
|
||||
si.game.Status = StatusFinished
|
||||
}
|
||||
|
||||
if si.persister != nil {
|
||||
si.persister.SaveSnakeGame(si.game)
|
||||
if si.queries != nil {
|
||||
si.saveSnakeGame(si.game)
|
||||
}
|
||||
|
||||
si.gameMu.Unlock()
|
||||
|
||||
Reference in New Issue
Block a user