fix call grpc

This commit is contained in:
2024-07-31 13:33:11 +02:00
parent 089d8e9c28
commit 4dbe0bd926
8 changed files with 766 additions and 781 deletions

View File

@@ -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: &timestamp.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: &timestamp.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: &timestamp.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,
}
}