2021-09-20 14:57:24 +02:00
|
|
|
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},
|
2021-09-20 22:55:12 +02:00
|
|
|
RegionStore: &RegionStore{DB: db},
|
2021-09-22 14:12:49 +02:00
|
|
|
GamemodeStore: &GamemodeStore{DB: db},
|
2021-09-23 15:58:56 +02:00
|
|
|
FlagStore: &FlagStore{DB: db},
|
2021-09-20 14:57:24 +02:00
|
|
|
}, nil
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
type Store struct {
|
|
|
|
*ServerStore
|
2021-09-20 22:55:12 +02:00
|
|
|
*RegionStore
|
2021-09-22 14:12:49 +02:00
|
|
|
*GamemodeStore
|
2021-09-23 15:58:56 +02:00
|
|
|
*FlagStore
|
2021-09-20 14:57:24 +02:00
|
|
|
}
|
|
|
|
|