36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package repos
|
|
|
|
import (
|
|
"context"
|
|
"gralias/models"
|
|
|
|
"github.com/jmoiron/sqlx"
|
|
)
|
|
|
|
type SettingsRepo interface {
|
|
SettingsGetByRoomID(ctx context.Context, roomID string) (*models.GameSettings, error)
|
|
SettingsUpdate(ctx context.Context, settings *models.GameSettings) error
|
|
SettingsDeleteByRoomID(ctx context.Context, roomID string) error
|
|
}
|
|
|
|
func (p *RepoProvider) SettingsGetByRoomID(ctx context.Context, roomID string) (*models.GameSettings, error) {
|
|
settings := &models.GameSettings{}
|
|
err := sqlx.GetContext(ctx, p.DB, settings, `SELECT * FROM settings WHERE room_id = ?`, roomID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return settings, nil
|
|
}
|
|
|
|
func (p *RepoProvider) SettingsUpdate(ctx context.Context, s *models.GameSettings) error {
|
|
db := getDB(ctx, p.DB)
|
|
_, err := db.ExecContext(ctx, `UPDATE settings SET language = ?, room_pass = ?, turn_time = ? WHERE room_id = ?`, s.Language, s.RoomPass, s.RoundTime, s.RoomID)
|
|
return err
|
|
}
|
|
|
|
func (p *RepoProvider) SettingsDeleteByRoomID(ctx context.Context, roomID string) error {
|
|
db := getDB(ctx, p.DB)
|
|
_, err := db.ExecContext(ctx, `DELETE FROM settings WHERE room_id = ?`, roomID)
|
|
return err
|
|
}
|