seperated gamemodes into seprate tables
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Philipp 2021-09-22 14:12:49 +02:00
parent f85fb7434d
commit 9dae1ca401
8 changed files with 210 additions and 17 deletions

View file

@ -0,0 +1,29 @@
package postgres
import (
"fmt"
"git.snrd.de/Spaenny/steamServer"
"github.com/jmoiron/sqlx"
)
type GamemodeStore struct {
*sqlx.DB
}
func (s *GamemodeStore) Gamemode(name string) (steamServer.Gamemode, error) {
var g steamServer.Gamemode
if err := s.Get(&g, `SELECT * FROM gamemodes WHERE name = $1`, name); err != nil {
return steamServer.Gamemode{}, fmt.Errorf("error getting gamemode id: %w", err)
}
return g, nil
}
func (s *GamemodeStore) Gamemodes() ([]steamServer.Gamemode, error) {
var gg []steamServer.Gamemode
var query = `SELECT * FROM gamemodes ORDER BY name ASC`
if err := s.Select(&gg, query); err != nil {
return []steamServer.Gamemode{}, fmt.Errorf("error gettings servers: %w", err)
}
return gg, nil
}

View file

@ -39,6 +39,15 @@ func (s *ServerStore) ServersByRegion(regionID uuid.UUID) ([]steamServer.Server,
return ss, nil
}
func (s *ServerStore) ServersByRegionAndGamemode(regionID uuid.UUID, gamemodeID uuid.UUID) ([]steamServer.Server, error) {
var ss []steamServer.Server
var query = `SELECT * FROM servers WHERE gamemode_id = $1 AND region_id = $2`
if err := s.Select(&ss, query, regionID, gamemodeID); err != nil {
return []steamServer.Server{}, fmt.Errorf("error gettings region servers: %w", err)
}
return ss, nil
}
func (s *ServerStore) ServersByGamemode(gamemodeID uuid.UUID) ([]steamServer.Server, error) {
var ss []steamServer.Server

View file

@ -21,6 +21,7 @@ func NewStore(dataSourceName string) (*Store, error) {
return &Store {
ServerStore: &ServerStore{DB: db},
RegionStore: &RegionStore{DB: db},
GamemodeStore: &GamemodeStore{DB: db},
}, nil
}
@ -28,5 +29,6 @@ func NewStore(dataSourceName string) (*Store, error) {
type Store struct {
*ServerStore
*RegionStore
*GamemodeStore
}