package postgresql import ( "database/sql" "github.com/lib/pq" "hamster-tycoon/storage/dao" "hamster-tycoon/storage/model" ) func (db *DatabasePostgreSQL) GetAllGames() ([]*model.Game, error) { q := ` SELECT g.id, g.server_id, g.user_id, g.created_at, g.updated_at FROM public.game g ` rows, err := db.session.Query(q) if err != nil { return nil, err } defer rows.Close() games := make([]*model.Game, 0) for rows.Next() { server := model.Server{} user := model.User{} game := model.Game{ Server: server, } err := rows.Scan(&game.ID, &server.ID, &user.ID, &game.CreatedAt, &game.UpdatedAt) if err != nil { return nil, err } games = append(games, &game) } return games, nil } func (db *DatabasePostgreSQL) GetGameById(id string) (*model.Game, error) { q := ` SELECT g.id, g.server_id, g.user_id, g.created_at, g.updated_at FROM public.game g WHERE g.id = $1 ` row := db.session.QueryRow(q, id) server := model.Server{} user := model.User{} game := model.Game{ Server: server, } err := row.Scan(&game.ID, &server.ID, &user.ID, &game.CreatedAt, &game.UpdatedAt) if errPq, ok := err.(*pq.Error); ok { return nil, handlePgError(errPq) } if err == sql.ErrNoRows { return nil, dao.NewDAOError(dao.ErrTypeNotFound, err) } return &game, err } func (db *DatabasePostgreSQL) CreateGame(*model.Game) error { return nil } func (db *DatabasePostgreSQL) DeleteGame(string) error { return nil } func (db *DatabasePostgreSQL) UpdateGame(*model.Game) error { return nil }