seperated gamemodes into seprate tables
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
f85fb7434d
commit
9dae1ca401
8 changed files with 210 additions and 17 deletions
29
postgres/gamemode_store.go
Normal file
29
postgres/gamemode_store.go
Normal 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
|
||||
}
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue