This commit is contained in:
2021-08-24 00:11:00 +02:00
parent 57bde4ac3c
commit 0757262143
22 changed files with 716 additions and 632 deletions

View File

@@ -2,18 +2,18 @@ package postgresql
import (
"database/sql"
"github.com/lib/pq"
"hamster-tycoon/storage/dao"
"hamster-tycoon/storage/model"
"github.com/lib/pq"
)
func (db *DatabasePostgreSQL) GetAllCages(gameID string) ([]*model.Cage, error) {
func (db *DatabasePostgreSQL) GetAllCages() ([]*model.Cage, error) {
q := `
SELECT c.id, created_at, updated_at, game_id
SELECT c.id, created_at, updated_at
FROM public.Cage c
WHERE c.game_id=$1
`
rows, err := db.session.Query(q, gameID)
rows, err := db.session.Query(q)
if err != nil {
return nil, err
}
@@ -21,11 +21,8 @@ func (db *DatabasePostgreSQL) GetAllCages(gameID string) ([]*model.Cage, error)
cages := make([]*model.Cage, 0)
for rows.Next() {
game := model.Game{}
cage := model.Cage{
Game: game,
}
err := rows.Scan(&cage.ID, &cage.CreatedAt, &cage.UpdatedAt, &game.ID)
cage := model.Cage{}
err := rows.Scan(&cage.ID, &cage.CreatedAt, &cage.UpdatedAt)
if err != nil {
return nil, err
}
@@ -34,19 +31,16 @@ func (db *DatabasePostgreSQL) GetAllCages(gameID string) ([]*model.Cage, error)
return cages, nil
}
func (db *DatabasePostgreSQL) GetCageByID(gameID, cageID string) (*model.Cage, error) {
func (db *DatabasePostgreSQL) GetCageByID(cageID string) (*model.Cage, error) {
q := `
SELECT c.id, created_at, updated_at, game_id
SELECT c.id, created_at, updated_at
FROM public.Cage c
WHERE c.game_id=$1 and c.id = $2
WHERE c.id = $2
`
row := db.session.QueryRow(q, gameID, cageID)
row := db.session.QueryRow(q, cageID)
game := model.Game{}
cage := model.Cage{
Game: game,
}
err := row.Scan(&cage.ID, &cage.CreatedAt, &cage.UpdatedAt, &game.ID)
cage := model.Cage{}
err := row.Scan(&cage.ID, &cage.CreatedAt, &cage.UpdatedAt)
if errPq, ok := err.(*pq.Error); ok {
return nil, handlePgError(errPq)
}
@@ -57,21 +51,7 @@ func (db *DatabasePostgreSQL) GetCageByID(gameID, cageID string) (*model.Cage, e
}
func (db *DatabasePostgreSQL) CreateCage(cage *model.Cage) error {
q := `
INSERT INTO public.Cage
(game_id)
VALUES
($1)
RETURNING id, created_at
`
err := db.session.
QueryRow(q, cage.Game.ID).
Scan(&cage.ID, &cage.CreatedAt)
if errPq, ok := err.(*pq.Error); ok {
return handlePgError(errPq)
}
return err
return nil
}
func (db *DatabasePostgreSQL) DeleteCage(id string) error {