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
 | |
| }
 | 
