GetAlPassengers
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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"]
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user