fix call grpc
This commit is contained in:
@@ -36,38 +36,38 @@ func (s *SolidarityServiceServerImpl) SetDriverRegularAvailabilities(ctx context
|
||||
AvailabilitiesType: internal.Regular,
|
||||
}
|
||||
|
||||
if req.DriverRequest.Driver.FirstName != nil {
|
||||
driver.Driver.FirstName = *req.DriverRequest.Driver.FirstName
|
||||
if req.DriverRequest.Driver.FirstName != "" {
|
||||
driver.Driver.FirstName = req.DriverRequest.Driver.FirstName
|
||||
}
|
||||
if req.DriverRequest.Driver.LastName != nil {
|
||||
driver.Driver.LastName = *req.DriverRequest.Driver.LastName
|
||||
if req.DriverRequest.Driver.LastName != "" {
|
||||
driver.Driver.LastName = req.DriverRequest.Driver.LastName
|
||||
}
|
||||
if req.DriverRequest.Driver.Grade != nil {
|
||||
driver.Driver.Grade = *req.DriverRequest.Driver.Grade
|
||||
if req.DriverRequest.Driver.Grade != 0 {
|
||||
driver.Driver.Grade = req.DriverRequest.Driver.Grade
|
||||
}
|
||||
if req.DriverRequest.Driver.Picture != nil {
|
||||
driver.Driver.Picture = *req.DriverRequest.Driver.Picture
|
||||
if req.DriverRequest.Driver.Picture != "" {
|
||||
driver.Driver.Picture = req.DriverRequest.Driver.Picture
|
||||
}
|
||||
if req.DriverRequest.Driver.Gender != nil {
|
||||
driver.Driver.Gender = *req.DriverRequest.Driver.Gender
|
||||
if req.DriverRequest.Driver.Gender != "" {
|
||||
driver.Driver.Gender = req.DriverRequest.Driver.Gender
|
||||
}
|
||||
if req.DriverRequest.Driver.VerifiedIdentity != nil {
|
||||
driver.Driver.VerifiedIdentity = *req.DriverRequest.Driver.VerifiedIdentity
|
||||
if req.DriverRequest.Driver.VerifiedIdentity != false {
|
||||
driver.Driver.VerifiedIdentity = req.DriverRequest.Driver.VerifiedIdentity
|
||||
}
|
||||
|
||||
if req.DriverRequest.Car != nil {
|
||||
driver.Car = internal.Car{
|
||||
Model: *req.DriverRequest.Car.Model,
|
||||
Brand: *req.DriverRequest.Car.Brand,
|
||||
Model: req.DriverRequest.Car.Model,
|
||||
Brand: req.DriverRequest.Car.Brand,
|
||||
}
|
||||
}
|
||||
if req.DriverRequest.Preferences != nil {
|
||||
driver.Preferences = internal.Preferences{
|
||||
Smoking: *req.DriverRequest.Preferences.Smoking,
|
||||
Animals: *req.DriverRequest.Preferences.Animals,
|
||||
Music: *req.DriverRequest.Preferences.Music,
|
||||
Is_talker: *req.DriverRequest.Preferences.IsTalker,
|
||||
Luggage_size: *req.DriverRequest.Preferences.LuggageSize,
|
||||
Smoking: req.DriverRequest.Preferences.Smoking,
|
||||
Animals: req.DriverRequest.Preferences.Animals,
|
||||
Music: req.DriverRequest.Preferences.Music,
|
||||
Is_talker: req.DriverRequest.Preferences.IsTalker,
|
||||
Luggage_size: req.DriverRequest.Preferences.LuggageSize,
|
||||
}
|
||||
}
|
||||
for _, v := range req.DriverAvailabilities {
|
||||
@@ -111,38 +111,38 @@ func (s *SolidarityServiceServerImpl) SetDriverPunctualAvailabilities(ctx contex
|
||||
AvailabilitiesType: internal.Punctual,
|
||||
}
|
||||
|
||||
if req.DriverRequest.Driver.FirstName != nil {
|
||||
driver.Driver.FirstName = *req.DriverRequest.Driver.FirstName
|
||||
if req.DriverRequest.Driver.FirstName != "" {
|
||||
driver.Driver.FirstName = req.DriverRequest.Driver.FirstName
|
||||
}
|
||||
if req.DriverRequest.Driver.LastName != nil {
|
||||
driver.Driver.LastName = *req.DriverRequest.Driver.LastName
|
||||
if req.DriverRequest.Driver.LastName != "" {
|
||||
driver.Driver.LastName = req.DriverRequest.Driver.LastName
|
||||
}
|
||||
if req.DriverRequest.Driver.Grade != nil {
|
||||
driver.Driver.Grade = *req.DriverRequest.Driver.Grade
|
||||
if req.DriverRequest.Driver.Grade != 0 {
|
||||
driver.Driver.Grade = req.DriverRequest.Driver.Grade
|
||||
}
|
||||
if req.DriverRequest.Driver.Picture != nil {
|
||||
driver.Driver.Picture = *req.DriverRequest.Driver.Picture
|
||||
if req.DriverRequest.Driver.Picture != "" {
|
||||
driver.Driver.Picture = req.DriverRequest.Driver.Picture
|
||||
}
|
||||
if req.DriverRequest.Driver.Gender != nil {
|
||||
driver.Driver.Gender = *req.DriverRequest.Driver.Gender
|
||||
if req.DriverRequest.Driver.Gender != ""{
|
||||
driver.Driver.Gender = req.DriverRequest.Driver.Gender
|
||||
}
|
||||
if req.DriverRequest.Driver.VerifiedIdentity != nil {
|
||||
driver.Driver.VerifiedIdentity = *req.DriverRequest.Driver.VerifiedIdentity
|
||||
if req.DriverRequest.Driver.VerifiedIdentity != false {
|
||||
driver.Driver.VerifiedIdentity = req.DriverRequest.Driver.VerifiedIdentity
|
||||
}
|
||||
|
||||
if req.DriverRequest.Car != nil {
|
||||
driver.Car = internal.Car{
|
||||
Model: *req.DriverRequest.Car.Model,
|
||||
Brand: *req.DriverRequest.Car.Brand,
|
||||
Model: req.DriverRequest.Car.Model,
|
||||
Brand: req.DriverRequest.Car.Brand,
|
||||
}
|
||||
}
|
||||
if req.DriverRequest.Preferences != nil {
|
||||
driver.Preferences = internal.Preferences{
|
||||
Smoking: *req.DriverRequest.Preferences.Smoking,
|
||||
Animals: *req.DriverRequest.Preferences.Animals,
|
||||
Music: *req.DriverRequest.Preferences.Music,
|
||||
Is_talker: *req.DriverRequest.Preferences.IsTalker,
|
||||
Luggage_size: *req.DriverRequest.Preferences.LuggageSize,
|
||||
Smoking: req.DriverRequest.Preferences.Smoking,
|
||||
Animals: req.DriverRequest.Preferences.Animals,
|
||||
Music: req.DriverRequest.Preferences.Music,
|
||||
Is_talker: req.DriverRequest.Preferences.IsTalker,
|
||||
Luggage_size: req.DriverRequest.Preferences.LuggageSize,
|
||||
}
|
||||
}
|
||||
for _, v := range req.DriverAvailabilities {
|
||||
@@ -164,7 +164,7 @@ func (s *SolidarityServiceServerImpl) SetDriverPunctualAvailabilities(ctx contex
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *SolidarityServiceServerImpl) CreateBooking(ctx context.Context, req *proto.CreateBookingRequest) (resp *proto.CreateBookingResponse, err error) {
|
||||
func (s *SolidarityServiceServerImpl) CreateBooking(ctx context.Context, req *proto.CreateBookingSilvermobiRequest) (resp *proto.CreateBookingSilvermobiResponse, err error) {
|
||||
if req.Booking.DriverId == "" || req.Booking.PassengerId == "" || req.Booking.Id == "" || req.Booking.Status.String() == "" || req.Booking.DepartureAddress == nil || req.Booking.DestinationAddress == nil || req.Booking.PickupDate.Seconds == 0 {
|
||||
return nil, errors.New("missing required fields")
|
||||
}
|
||||
@@ -202,30 +202,30 @@ func (s *SolidarityServiceServerImpl) CreateBooking(ctx context.Context, req *pr
|
||||
}
|
||||
distance := s.Handler.CalculateDistanceBetweenFeatures(bookingRequest.Departure_address, bookingRequest.Destination_address)
|
||||
priceType := proto.PriceType_FREE
|
||||
resp = &proto.CreateBookingResponse{
|
||||
Booking: &proto.Booking{},
|
||||
resp = &proto.CreateBookingSilvermobiResponse{
|
||||
Booking: &proto.BookingSilvermobi{},
|
||||
}
|
||||
resp.Booking = &proto.Booking{
|
||||
resp.Booking = &proto.BookingSilvermobi{
|
||||
Id: bookingRequest.ID,
|
||||
Driver: &proto.User{
|
||||
Id: driver.Driver.ID,
|
||||
Alias: driver.Driver.Alias,
|
||||
FirstName: &driver.Driver.FirstName,
|
||||
LastName: &driver.Driver.LastName,
|
||||
Grade: &driver.Driver.Grade,
|
||||
Picture: &driver.Driver.Picture,
|
||||
Gender: &driver.Driver.Gender,
|
||||
VerifiedIdentity: &driver.Driver.VerifiedIdentity,
|
||||
FirstName: driver.Driver.FirstName,
|
||||
LastName: driver.Driver.LastName,
|
||||
Grade: driver.Driver.Grade,
|
||||
Picture: driver.Driver.Picture,
|
||||
Gender: driver.Driver.Gender,
|
||||
VerifiedIdentity: driver.Driver.VerifiedIdentity,
|
||||
},
|
||||
Passenger: &proto.User{
|
||||
Id: passenger.Passenger.ID,
|
||||
Alias: passenger.Passenger.Alias,
|
||||
FirstName: &passenger.Passenger.FirstName,
|
||||
LastName: &passenger.Passenger.LastName,
|
||||
Grade: &passenger.Passenger.Grade,
|
||||
Picture: &passenger.Passenger.Picture,
|
||||
Gender: &passenger.Passenger.Gender,
|
||||
VerifiedIdentity: &passenger.Passenger.VerifiedIdentity,
|
||||
FirstName: passenger.Passenger.FirstName,
|
||||
LastName: passenger.Passenger.LastName,
|
||||
Grade: passenger.Passenger.Grade,
|
||||
Picture: passenger.Passenger.Picture,
|
||||
Gender: passenger.Passenger.Gender,
|
||||
VerifiedIdentity: passenger.Passenger.VerifiedIdentity,
|
||||
},
|
||||
PassengerPickupDate: ×tamp.Timestamp{
|
||||
Seconds: bookingRequest.Pickup_date,
|
||||
@@ -241,22 +241,22 @@ func (s *SolidarityServiceServerImpl) CreateBooking(ctx context.Context, req *pr
|
||||
Address: bookingRequest.Destination_address.Properties.MustString("name"),
|
||||
},
|
||||
Status: ConvertInternalToProtoBookingStatus(bookingRequest.Status),
|
||||
Duration: &duration,
|
||||
Distance: &distance,
|
||||
Duration: duration,
|
||||
Distance: distance,
|
||||
Price: &proto.Price{
|
||||
Type: &priceType,
|
||||
Type: priceType,
|
||||
},
|
||||
Car: &proto.Car{
|
||||
Model: &driver.Car.Model,
|
||||
Brand: &driver.Car.Brand,
|
||||
Model: driver.Car.Model,
|
||||
Brand: driver.Car.Brand,
|
||||
},
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (s *SolidarityServiceServerImpl) UpdateBooking(ctx context.Context, req *proto.UpdateBookingRequest) (resp *proto.UpdateBookingResponse, err error) {
|
||||
func (s *SolidarityServiceServerImpl) UpdateBooking(ctx context.Context, req *proto.UpdateBookingSilvermobiRequest) (resp *proto.UpdateBookingSilvermobiResponse, err error) {
|
||||
if req.BookingId == "" || req.Status.String() == "" {
|
||||
return &proto.UpdateBookingResponse{
|
||||
return &proto.UpdateBookingSilvermobiResponse{
|
||||
Success: false,
|
||||
}, errors.New("missing required fields")
|
||||
}
|
||||
@@ -266,16 +266,16 @@ func (s *SolidarityServiceServerImpl) UpdateBooking(ctx context.Context, req *pr
|
||||
if strings.Contains(err.Error(), utils.SQL_NO_ROWS) {
|
||||
err = errors.New("invalid ID")
|
||||
}
|
||||
return &proto.UpdateBookingResponse{
|
||||
return &proto.UpdateBookingSilvermobiResponse{
|
||||
Success: false,
|
||||
}, err
|
||||
}
|
||||
return &proto.UpdateBookingResponse{
|
||||
return &proto.UpdateBookingSilvermobiResponse{
|
||||
Success: true,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *SolidarityServiceServerImpl) GetBooking(ctx context.Context, req *proto.GetBookingRequest) (resp *proto.GetBookingResponse, err error) {
|
||||
func (s *SolidarityServiceServerImpl) GetBooking(ctx context.Context, req *proto.GetBookingSilvermobiRequest) (resp *proto.GetBookingSilvermobiResponse, err error) {
|
||||
if req.BookingId == "" {
|
||||
return nil, errors.New("empty booking ID")
|
||||
}
|
||||
@@ -286,8 +286,8 @@ func (s *SolidarityServiceServerImpl) GetBooking(ctx context.Context, req *proto
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
resp = &proto.GetBookingResponse{
|
||||
Booking: &proto.Booking{},
|
||||
resp = &proto.GetBookingSilvermobiResponse{
|
||||
Booking: &proto.BookingSilvermobi{},
|
||||
}
|
||||
priceType := proto.PriceType_FREE
|
||||
driver, err := s.Handler.GetDriver(context.Background(), booking.Driver.ID)
|
||||
@@ -296,27 +296,27 @@ func (s *SolidarityServiceServerImpl) GetBooking(ctx context.Context, req *proto
|
||||
}
|
||||
car := driver.Car
|
||||
distance := int64(booking.Distance)
|
||||
resp.Booking = &proto.Booking{
|
||||
resp.Booking = &proto.BookingSilvermobi{
|
||||
Id: booking.ID,
|
||||
Driver: &proto.User{
|
||||
Id: booking.Driver.ID,
|
||||
Alias: booking.Driver.Alias,
|
||||
FirstName: &booking.Driver.FirstName,
|
||||
LastName: &booking.Driver.LastName,
|
||||
Grade: &booking.Driver.Grade,
|
||||
Picture: &booking.Driver.Picture,
|
||||
Gender: &booking.Driver.Gender,
|
||||
VerifiedIdentity: &booking.Driver.VerifiedIdentity,
|
||||
FirstName: booking.Driver.FirstName,
|
||||
LastName: booking.Driver.LastName,
|
||||
Grade: booking.Driver.Grade,
|
||||
Picture: booking.Driver.Picture,
|
||||
Gender: booking.Driver.Gender,
|
||||
VerifiedIdentity: booking.Driver.VerifiedIdentity,
|
||||
},
|
||||
Passenger: &proto.User{
|
||||
Id: booking.Passenger.ID,
|
||||
Alias: booking.Passenger.Alias,
|
||||
FirstName: &booking.Passenger.FirstName,
|
||||
LastName: &booking.Passenger.LastName,
|
||||
Grade: &booking.Passenger.Grade,
|
||||
Picture: &booking.Passenger.Picture,
|
||||
Gender: &booking.Passenger.Gender,
|
||||
VerifiedIdentity: &booking.Passenger.VerifiedIdentity,
|
||||
FirstName: booking.Passenger.FirstName,
|
||||
LastName: booking.Passenger.LastName,
|
||||
Grade: booking.Passenger.Grade,
|
||||
Picture: booking.Passenger.Picture,
|
||||
Gender: booking.Passenger.Gender,
|
||||
VerifiedIdentity: booking.Passenger.VerifiedIdentity,
|
||||
},
|
||||
PassengerPickupDate: ×tamp.Timestamp{
|
||||
Seconds: booking.Pickup_date,
|
||||
@@ -332,14 +332,14 @@ func (s *SolidarityServiceServerImpl) GetBooking(ctx context.Context, req *proto
|
||||
Address: booking.PassengerDropAddress.Properties.MustString("name"),
|
||||
},
|
||||
Status: ConvertInternalToProtoBookingStatus(booking.Status),
|
||||
Duration: &booking.Duration,
|
||||
Distance: &distance,
|
||||
Duration: booking.Duration,
|
||||
Distance: distance,
|
||||
Car: &proto.Car{
|
||||
Model: &car.Model,
|
||||
Brand: &car.Brand,
|
||||
Model: car.Model,
|
||||
Brand: car.Brand,
|
||||
},
|
||||
Price: &proto.Price{
|
||||
Type: &priceType,
|
||||
Type: priceType,
|
||||
},
|
||||
}
|
||||
return resp, nil
|
||||
@@ -359,7 +359,7 @@ func (s *SolidarityServiceServerImpl) GetBookingsByStatus(ctx context.Context, r
|
||||
}
|
||||
|
||||
// Use a goroutine to concurrently convert bookings to proto
|
||||
respChan := make(chan []*proto.Booking, 1)
|
||||
respChan := make(chan []*proto.BookingSilvermobi, 1)
|
||||
go func() {
|
||||
respChan <- convertInternalBookingsToProto(s, bookings, 50)
|
||||
}()
|
||||
@@ -379,8 +379,8 @@ func (s *SolidarityServiceServerImpl) GetBookingsByStatus(ctx context.Context, r
|
||||
}
|
||||
}
|
||||
|
||||
func convertInternalBookingsToProto(s *SolidarityServiceServerImpl, bookings []internal.Booking, maxGoroutines int) []*proto.Booking {
|
||||
var responses []*proto.Booking
|
||||
func convertInternalBookingsToProto(s *SolidarityServiceServerImpl, bookings []internal.Booking, maxGoroutines int) []*proto.BookingSilvermobi {
|
||||
var responses []*proto.BookingSilvermobi
|
||||
var wg sync.WaitGroup
|
||||
var mu sync.Mutex
|
||||
semaphore := make(chan struct{}, maxGoroutines)
|
||||
@@ -426,7 +426,7 @@ func convertInternalBookingsToProto(s *SolidarityServiceServerImpl, bookings []i
|
||||
|
||||
priceType := proto.PriceType_FREE
|
||||
distance := int64(booking.Distance)
|
||||
protoBooking := &proto.Booking{
|
||||
protoBooking := &proto.BookingSilvermobi{
|
||||
Id: booking.ID,
|
||||
Status: ConvertInternalToProtoBookingStatus(booking.Status),
|
||||
Driver: convertInternalUserToProtoUser(driver.Driver),
|
||||
@@ -436,14 +436,14 @@ func convertInternalBookingsToProto(s *SolidarityServiceServerImpl, bookings []i
|
||||
},
|
||||
PassengerDepartureRoute: convertInternalFeatureToProtoFeature(booking.PassengerPickupAddress),
|
||||
PassengerDestinationRoute: convertInternalFeatureToProtoFeature(booking.PassengerDropAddress),
|
||||
Duration: &booking.Duration,
|
||||
Distance: &distance,
|
||||
Duration: booking.Duration,
|
||||
Distance: distance,
|
||||
Car: &proto.Car{
|
||||
Model: &car.Model,
|
||||
Brand: &car.Brand,
|
||||
Model: car.Model,
|
||||
Brand: car.Brand,
|
||||
},
|
||||
Price: &proto.Price{
|
||||
Type: &priceType,
|
||||
Type: priceType,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -466,12 +466,12 @@ func convertInternalUserToProtoUser(user internal.User) *proto.User {
|
||||
return &proto.User{
|
||||
Id: user.ID,
|
||||
Alias: user.Alias,
|
||||
FirstName: &user.FirstName,
|
||||
LastName: &user.LastName,
|
||||
Grade: &user.Grade,
|
||||
Picture: &user.Picture,
|
||||
Gender: &user.Gender,
|
||||
VerifiedIdentity: &user.VerifiedIdentity,
|
||||
FirstName: user.FirstName,
|
||||
LastName: user.LastName,
|
||||
Grade: user.Grade,
|
||||
Picture: user.Picture,
|
||||
Gender: user.Gender,
|
||||
VerifiedIdentity: user.VerifiedIdentity,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -544,22 +544,22 @@ func (s *SolidarityServiceServerImpl) DriverJourneys(ctx context.Context, req *p
|
||||
User: &proto.User{
|
||||
Id: v.Driver.ID,
|
||||
Alias: v.Driver.Alias,
|
||||
FirstName: &v.Driver.FirstName,
|
||||
LastName: &v.Driver.LastName,
|
||||
Grade: &v.Driver.Grade,
|
||||
Picture: &v.Driver.Picture,
|
||||
Gender: &v.Driver.Gender,
|
||||
VerifiedIdentity: &v.Driver.VerifiedIdentity,
|
||||
FirstName: v.Driver.FirstName,
|
||||
LastName: v.Driver.LastName,
|
||||
Grade: v.Driver.Grade,
|
||||
Picture: v.Driver.Picture,
|
||||
Gender: v.Driver.Gender,
|
||||
VerifiedIdentity: v.Driver.VerifiedIdentity,
|
||||
},
|
||||
Car: &proto.Car{
|
||||
Model: &v.Car.Model,
|
||||
Brand: &v.Car.Brand,
|
||||
Model: v.Car.Model,
|
||||
Brand: v.Car.Brand,
|
||||
},
|
||||
DriverDeparture_Date: ×tamp.Timestamp{
|
||||
Seconds: req.DepartureDate.Seconds,
|
||||
},
|
||||
Price: &proto.Price{
|
||||
Type: &priceType,
|
||||
Type: priceType,
|
||||
},
|
||||
DriverDeparture_Address: v.Driver_departure_address.Properties.MustString("name"),
|
||||
}
|
||||
@@ -582,31 +582,31 @@ func (s *SolidarityServiceServerImpl) SetPassengerTrip(ctx context.Context, req
|
||||
passenger := internal.Passenger{}
|
||||
passenger.Passenger.ID = req.Passenger.Id
|
||||
passenger.Passenger.Alias = req.Passenger.Alias
|
||||
if req.Passenger.FirstName != nil {
|
||||
passenger.Passenger.FirstName = *req.Passenger.FirstName
|
||||
if req.Passenger.FirstName != "" {
|
||||
passenger.Passenger.FirstName = req.Passenger.FirstName
|
||||
}
|
||||
if req.Passenger.LastName != nil {
|
||||
passenger.Passenger.LastName = *req.Passenger.LastName
|
||||
if req.Passenger.LastName != "" {
|
||||
passenger.Passenger.LastName = req.Passenger.LastName
|
||||
}
|
||||
if req.Passenger.Grade != nil {
|
||||
passenger.Passenger.Grade = *req.Passenger.Grade
|
||||
if req.Passenger.Grade != 0 {
|
||||
passenger.Passenger.Grade = req.Passenger.Grade
|
||||
}
|
||||
if req.Passenger.Picture != nil {
|
||||
passenger.Passenger.Picture = *req.Passenger.Picture
|
||||
if req.Passenger.Picture != "" {
|
||||
passenger.Passenger.Picture = req.Passenger.Picture
|
||||
}
|
||||
if req.Passenger.Gender != nil {
|
||||
passenger.Passenger.Gender = *req.Passenger.Gender
|
||||
if req.Passenger.Gender != "" {
|
||||
passenger.Passenger.Gender = req.Passenger.Gender
|
||||
}
|
||||
if req.Passenger.VerifiedIdentity != nil {
|
||||
passenger.Passenger.VerifiedIdentity = *req.Passenger.VerifiedIdentity
|
||||
if req.Passenger.VerifiedIdentity != false {
|
||||
passenger.Passenger.VerifiedIdentity = req.Passenger.VerifiedIdentity
|
||||
}
|
||||
if req.Preferences != nil {
|
||||
passenger.Preferences = internal.Preferences{
|
||||
Smoking: *req.Preferences.Smoking,
|
||||
Animals: *req.Preferences.Animals,
|
||||
Music: *req.Preferences.Music,
|
||||
Is_talker: *req.Preferences.IsTalker,
|
||||
Luggage_size: *req.Preferences.LuggageSize,
|
||||
Smoking: req.Preferences.Smoking,
|
||||
Animals: req.Preferences.Animals,
|
||||
Music: req.Preferences.Music,
|
||||
Is_talker: req.Preferences.IsTalker,
|
||||
Luggage_size: req.Preferences.LuggageSize,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user