added region support, fixed minor bugs
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
4807355add
commit
77b88325cf
8 changed files with 121 additions and 16 deletions
20
postgres/region_store.go
Normal file
20
postgres/region_store.go
Normal file
|
@ -0,0 +1,20 @@
|
|||
package postgres
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"git.snrd.de/Spaenny/steamServer"
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
type RegionStore struct {
|
||||
*sqlx.DB
|
||||
}
|
||||
|
||||
func (s *RegionStore) Region(name string) (steamServer.Region, error) {
|
||||
var r steamServer.Region
|
||||
if err := s.Get(&r, `SELECT * FROM regions WHERE name = $1`, name); err != nil {
|
||||
return steamServer.Region{}, fmt.Errorf("error getting region id: %w", err)
|
||||
}
|
||||
return r, nil
|
||||
}
|
|
@ -29,6 +29,27 @@ func (s *ServerStore) Servers() ([]steamServer.Server, error) {
|
|||
return ss, nil
|
||||
}
|
||||
|
||||
func (s *ServerStore) ServersByRegion(regionID uuid.UUID) ([]steamServer.Server, error) {
|
||||
var ss []steamServer.Server
|
||||
var query = `
|
||||
SELECT * FROM servers WHERE region_id = $1`
|
||||
if err := s.Select(&ss, query, regionID); 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
|
||||
|
||||
var query = `SELECT * FROM servers WHERE gamemode_id = $1`
|
||||
|
||||
if err := s.Select(&ss, query, gamemodeID); err != nil {
|
||||
return []steamServer.Server{}, fmt.Errorf("error gettings gamemode servers: %w", err)
|
||||
}
|
||||
return ss, nil
|
||||
}
|
||||
|
||||
func (s *ServerStore) CreateServer(ser *steamServer.Server) error {
|
||||
if err := s.Get(ser, `INSERT INTO servers VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNUNG *`,
|
||||
ser.ID,
|
||||
|
@ -45,13 +66,13 @@ func (s *ServerStore) CreateServer(ser *steamServer.Server) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (s *ServerStore) UpdateServerByQuery(ser *steamServer.Server) error {
|
||||
fmt.Println(ser.Name + ser.Map)
|
||||
if err := s.Get(s, `UPDATE "servers" SET "name" = $1, "map" = $2, "players" = $3, "max_players" = $4 WHERE "name" = $1 RETURNING *`,
|
||||
func (s *ServerStore) UpdateServerByQuery(ser *steamServer.Server, server_ip string) error {
|
||||
if err := s.Get(s, `UPDATE "servers" SET "name" = $1, "map" = $2, "players" = $3, "max_players" = $4 WHERE "server_ip" = $5 RETURNING *`,
|
||||
ser.Name,
|
||||
ser.Map,
|
||||
ser.Players,
|
||||
ser.MaxPlayers); err != nil {
|
||||
ser.MaxPlayers,
|
||||
server_ip); err != nil {
|
||||
return fmt.Errorf("error updating server: %w", err)
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -20,11 +20,13 @@ func NewStore(dataSourceName string) (*Store, error) {
|
|||
|
||||
return &Store {
|
||||
ServerStore: &ServerStore{DB: db},
|
||||
RegionStore: &RegionStore{DB: db},
|
||||
}, nil
|
||||
|
||||
}
|
||||
|
||||
type Store struct {
|
||||
*ServerStore
|
||||
*RegionStore
|
||||
}
|
||||
|
||||
|
|
Reference in a new issue