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,20 +2,20 @@ package postgresql
import (
"database/sql"
"github.com/lib/pq"
"hamster-tycoon/storage/dao"
"hamster-tycoon/storage/model"
"github.com/lib/pq"
)
func (db *DatabasePostgreSQL) GetAllHamsters(gameID, cageID string) ([]*model.Hamster, error) {
func (db *DatabasePostgreSQL) GetAllHamsters(cageID string) ([]*model.Hamster, error) {
q := `
SELECT id, created_at, updated_at, name, number, sexe, age, father_id, mother_id, hunger_level, thirst_level, weight, height, alive, sold, gestation, gestation_period, gestation_cooldown, gestation_father_id, cage_id
SELECT id, created_at, updated_at, name, number, sexe, age, father_id, mother_id, hunger_level, thirst_level, weight, height, alive, sold, golden, gestation, gestation_period, gestation_cooldown, gestation_father_id, cage_id
FROM hamster h
JOIN cage c ON h.cage_id = c.id
JOIN game g on c.game_id = g.id
WHERE c.id=$1 and g.id=$2
`
rows, err := db.session.Query(q, cageID, gameID)
rows, err := db.session.Query(q, cageID)
if err != nil {
return nil, err
}
@@ -36,7 +36,7 @@ func (db *DatabasePostgreSQL) GetAllHamsters(gameID, cageID string) ([]*model.Ha
&hamster.Mother.ID, &hamster.HungerLevel,
&hamster.ThirstLevel, &hamster.Weight,
&hamster.Height, &hamster.Alive,
&hamster.Sold, &hamster.Gestation,
&hamster.Sold, &hamster.Golden, &hamster.Gestation,
&hamster.GestationPeriod, &hamster.GestationCooldown,
&hamster.GestationFather.ID, &hamster.Cage.ID)
if err != nil {
@@ -47,15 +47,14 @@ func (db *DatabasePostgreSQL) GetAllHamsters(gameID, cageID string) ([]*model.Ha
return hamsters, nil
}
func (db *DatabasePostgreSQL) GetHamsterByID(id, gameID, cageID string) (*model.Hamster, error) {
func (db *DatabasePostgreSQL) GetHamsterByID(id, cageID string) (*model.Hamster, error) {
q := `
SELECT id, created_at, updated_at, name, number, sexe, age, father_id, mother_id, hunger_level, thirst_level, weight, height, alive, sold, gestation, gestation_period, gestation_cooldown, gestation_father_id, cage_id
SELECT id, created_at, updated_at, name, number, sexe, age, father_id, mother_id, hunger_level, thirst_level, weight, height, alive, sold, golden, gestation, gestation_period, gestation_cooldown, gestation_father_id, cage_id
FROM hamster h
JOIN cage c ON h.cage_id = c.id
JOIN game g on c.game_id = g.id
WHERE h.id=$1 and c.id=$2 and g.id=$3
`
row := db.session.QueryRow(q, id, cageID, gameID)
row := db.session.QueryRow(q, id, cageID)
hamster := model.Hamster{
Mother: &model.Hamster{},
@@ -70,7 +69,7 @@ func (db *DatabasePostgreSQL) GetHamsterByID(id, gameID, cageID string) (*model.
&hamster.Mother.ID, &hamster.HungerLevel,
&hamster.ThirstLevel, &hamster.Weight,
&hamster.Height, &hamster.Alive,
&hamster.Sold, &hamster.Gestation,
&hamster.Sold, &hamster.Golden, &hamster.Gestation,
&hamster.GestationPeriod, &hamster.GestationCooldown,
&hamster.GestationFather.ID, &hamster.Cage.ID)
@@ -86,7 +85,7 @@ func (db *DatabasePostgreSQL) GetHamsterByID(id, gameID, cageID string) (*model.
func (db *DatabasePostgreSQL) CreateHamster(hamster *model.Hamster) error {
q := `
INSERT INTO public.Hamster
(name, number, sexe, age, father_id, mother_id, hunger_level, thirst_level, weight, height, alive, sold, gestation, gestation_period, gestation_cooldown, gestation_father_id,cage_id)
(name, number, sexe, age, father_id, mother_id, hunger_level, thirst_level, weight, height, alive, sold, golden, gestation, gestation_period, gestation_cooldown, gestation_father_id,cage_id)
VALUES
($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17)
RETURNING id, created_at
@@ -99,7 +98,7 @@ func (db *DatabasePostgreSQL) CreateHamster(hamster *model.Hamster) error {
&hamster.Mother.ID, &hamster.HungerLevel,
&hamster.ThirstLevel, &hamster.Weight,
&hamster.Height, &hamster.Alive,
&hamster.Sold, &hamster.Gestation,
&hamster.Sold, &hamster.Golden, &hamster.Gestation,
&hamster.GestationPeriod, &hamster.GestationCooldown,
&hamster.GestationFather.ID, &hamster.Cage.ID).
Scan(&hamster.ID, &hamster.CreatedAt)