package main import ( "arbeitszeitmessung/models" "database/sql" "fmt" ) func OpenDatabase() (*sql.DB, error) { dbHost := getEnv("POSTGRES_HOST", "localhost") dbName := getEnv("POSTGRES_DB", "arbeitszeitmessung") dbUser := getEnv("POSTGRES_USER", "arbeit_zeit") dbPassword := getEnv("POSTGRES_PASS", "password") connStr := fmt.Sprintf("postgres://%s:%s@%s:5432/%s?sslmode=disable", dbUser, dbPassword, dbHost, dbName) return sql.Open("postgres", connStr) } func GetBookingsByCardID(db *sql.DB, card_id string) ([]models.Booking, error) { qStr, err := db.Prepare((`SELECT * FROM zeiten WHERE card_id = $1`)) if err != nil { return nil, err } var bookings []models.Booking rows, err := qStr.Query(card_id) if err == sql.ErrNoRows { return bookings, err } if err != nil { return nil, err } defer rows.Close() for rows.Next() { var booking models.Booking if err := rows.Scan(&booking.Id, &booking.LoggedTime, &booking.CardID, &booking.ReaderID, &booking.BookingType); err != nil { return bookings, err } bookings = append(bookings, booking) } if err = rows.Err(); err != nil { return bookings, err } return bookings, nil }