first commit

This commit is contained in:
Philipp 2021-09-20 14:57:24 +02:00
commit 7e62f366e7
8 changed files with 224 additions and 0 deletions

34
postgres/server_store.go Normal file
View file

@ -0,0 +1,34 @@
package postgres
import (
"fmt"
"git.snrd.de/Spaenny/steamServer"
"github.com/google/uuid"
"github.com/jmoiron/sqlx"
)
type ServerStore struct {
*sqlx.DB
}
func (s *ServerStore) Server(id uuid.UUID) (steamServer.Server, error) {
var ser steamServer.Server
if err := s.Get(&ser, `SELECT * FROM servers WHERE id = $1`, id); err != nil {
return steamServer.Server{}, fmt.Errorf("error getting server: %w", err)
}
return ser, nil
}
func (s *ServerStore) CreateServer(ser *steamServer.Server) error {
if err := s.Get(ser, `INSERT INTO servers VALUES($1, $2, $3, $4, $5, $6) RETURNUNG *`,
ser.ID,
ser.AppID,
ser.Name,
ser.Map,
ser.Player,
ser.MaxPlayers); err != nil {
return fmt.Errorf("error creating server: %w", err)
}
return nil
}

30
postgres/store.go Normal file
View file

@ -0,0 +1,30 @@
package postgres
import (
"fmt"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
)
func NewStore(dataSourceName string) (*Store, error) {
db, err := sqlx.Open("postgres", dataSourceName)
if err != nil {
return nil, fmt.Errorf("error opening database %w", err)
}
if err := db.Ping(); err != nil {
return nil, fmt.Errorf("error connecting to database %w", err)
}
return &Store {
ServerStore: &ServerStore{DB: db},
}, nil
}
type Store struct {
*ServerStore
}