get all bookings
This commit is contained in:
@@ -592,6 +592,76 @@ func (s PostgresqlStorage) GetBooking(id string) (booking internal.Booking, err
|
||||
return booking, nil
|
||||
}
|
||||
|
||||
|
||||
func (s PostgresqlStorage) GetAllBookingsSolidarity() (bookings []internal.Booking, err error) {
|
||||
var departureAddress []byte
|
||||
var destinationAddress []byte
|
||||
var booking internal.Booking
|
||||
|
||||
rows, err := s.DbConnection.Query(fmt.Sprintf("SELECT booking_id , passenger_id , driver_id , booking_status , departure_address,destination_address,pickup_date,duration,distance FROM %s ", s.Tables["bookings"]))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
if err := rows.Scan(
|
||||
&booking.ID,
|
||||
&booking.Passenger.ID,
|
||||
&booking.Driver.ID,
|
||||
&booking.Status,
|
||||
&departureAddress,
|
||||
&destinationAddress,
|
||||
&booking.Pickup_date,
|
||||
&booking.Duration,
|
||||
&booking.Distance,
|
||||
)
|
||||
err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := json.Unmarshal(departureAddress, &booking.PassengerPickupAddress); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
errMsg := "Postgresql Storage GetBooking Error getting booking"
|
||||
log.Error().Err(err).Msg(errMsg)
|
||||
return nil, errors.New(errMsg + err.Error())
|
||||
}
|
||||
booking.PassengerPickupAddress, err = geojson.UnmarshalFeature(departureAddress)
|
||||
if err != nil {
|
||||
errMsg := "Postgresql Storage GetBooking Error decoding Driver departure route into GeoJSON"
|
||||
log.Error().Err(err).Msg(errMsg)
|
||||
return nil, errors.New(errMsg + err.Error())
|
||||
}
|
||||
booking.PassengerDropAddress, err = geojson.UnmarshalFeature(destinationAddress)
|
||||
if err != nil {
|
||||
errMsg := "Postgresql Storage GetBooking Error decoding Driver destination route into GeoJSON"
|
||||
log.Error().Err(err).Msg(errMsg)
|
||||
return nil, errors.New(errMsg + err.Error())
|
||||
}
|
||||
passenger, err := s.GetPassenger(booking.Passenger.ID)
|
||||
if err != nil {
|
||||
errMsg := "Postgresql Storage GetBooking Error getting passenger"
|
||||
log.Error().Err(err).Msg(errMsg)
|
||||
return bookings, errors.New(errMsg + err.Error())
|
||||
}
|
||||
booking.Passenger = passenger.Passenger
|
||||
driver, err := s.GetDriver(booking.Driver.ID)
|
||||
if err != nil {
|
||||
errMsg := "Postgresql Storage GetBooking Error getting driver"
|
||||
log.Error().Err(err).Msg(errMsg)
|
||||
return bookings, errors.New(errMsg + err.Error())
|
||||
}
|
||||
booking.Driver = driver.Driver
|
||||
|
||||
bookings = append(bookings, booking)
|
||||
}
|
||||
|
||||
return bookings, nil
|
||||
}
|
||||
|
||||
func (s PostgresqlStorage) UpdateBookingStatus(id string, status internal.BookingStatus) (err error) {
|
||||
_, err = uuid.Parse(id)
|
||||
if err != nil {
|
||||
|
||||
@@ -17,6 +17,7 @@ type Storage interface {
|
||||
CreateBooking(booking internal.BookingRequest) (err error)
|
||||
UpdateBookingStatus(id string, status internal.BookingStatus) (err error)
|
||||
FilterUserBookingsByStatus(user_type string, status internal.BookingStatus, user_id string) (bookings []internal.Booking, err error)
|
||||
GetAllBookingsSolidarity() (passengers []internal.Booking, err error)
|
||||
DriverJourneys(departure_route *geojson.Feature, departure_date int64) (drivers []internal.Driver, err error)
|
||||
GetAllDriversByDate(date int64) (drivers []internal.Driver, err error)
|
||||
GetAllDrivers() (drivers []internal.Driver, err error)
|
||||
|
||||
Reference in New Issue
Block a user