first commit
This commit is contained in:
commit
7e62f366e7
8 changed files with 224 additions and 0 deletions
34
postgres/server_store.go
Normal file
34
postgres/server_store.go
Normal 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
30
postgres/store.go
Normal 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
|
||||
}
|
||||
|
Reference in a new issue