GetAlPassengers

This commit is contained in:
2024-09-25 15:16:34 +02:00
parent 5c722cfcb1
commit 1d01133e1a
11 changed files with 589 additions and 309 deletions

View File

@@ -179,6 +179,53 @@ func (s PostgresqlStorage) GetPassenger(passengerID string) (passenger internal.
return passenger, nil
}
func (s PostgresqlStorage) GetAllPassengers() (passengers []internal.Passenger, err error) {
var preferencesJSON []byte
rows, err := s.DbConnection.Query(fmt.Sprintf("SELECT alias, last_name, first_name, grade, picture, verified_identity, operator, preferences, passenger_id FROM %s ", s.Tables["passengers"]))
if err != nil {
return nil, err
}
defer rows.Close()
for rows.Next() {
var passenger internal.Passenger
if err := rows.Scan(
&passenger.Passenger.Alias,
&passenger.Passenger.LastName,
&passenger.Passenger.FirstName,
&passenger.Passenger.Grade,
&passenger.Passenger.Picture,
&passenger.Passenger.VerifiedIdentity,
&passenger.Passenger.Operator,
&preferencesJSON,
&passenger.Passenger.ID,
); err != nil {
return nil, err
}
passengers = append(passengers, passenger)
}
if err != nil {
errMsg := "Postgresql Storage GetPassenger Error querying data from the database"
log.Error().Err(err).Msg(errMsg)
return passengers, errors.New(errMsg + err.Error())
}
for i := range passengers {
err = json.Unmarshal(preferencesJSON, &passengers[i].Preferences)
if err != nil {
errMsg := "Postgresql Storage GetPassenger Error decoding Preferences from JSON"
log.Error().Err(err).Msg(errMsg)
return passengers, errors.New(errMsg + err.Error())
}
}
return passengers, nil
}
func (s PostgresqlStorage) CreateDriver(driver internal.Driver) (err error) {
var availabilities []byte
_, err = uuid.Parse(driver.Driver.ID)

View File

@@ -161,7 +161,7 @@ table "bookings" {
ref_columns = [table.passengers.column.passenger_id]
}
}
enum "booking_status" {
enum "bookingstatus" {
schema = schema.solidarity_service
values = ["INITIATED", "WAITING_PASSENGER_CONFIRMATION", "WAITING_DRIVER_CONFIRMATION", "CONFIRMED", "CANCELLED", "COMPLETED_PENDING_VALIDATION", "VALIDATED"]
}

View File

@@ -10,6 +10,7 @@ import (
type Storage interface {
CreatePassenger(passenger internal.Passenger) (err error)
GetPassenger(passengerID string) (passenger internal.Passenger, err error)
GetAllPassengers() (passengers []internal.Passenger, err error)
CreateDriver(driver internal.Driver) (err error)
GetDriver(driverID string) (driver internal.Driver, err error)
GetBooking(id string) (booking internal.Booking, err error)