fix conflict with fleets bookings

This commit is contained in:
2024-08-02 15:11:52 +02:00
parent 900eef52cf
commit 231477ccb8
7 changed files with 506 additions and 502 deletions

View File

@@ -5,23 +5,23 @@ import (
"solidarity-service/servers/grpc/proto"
)
func ConvertInternalToProtoBookingStatus(internalStatus internal.BookingStatus) proto.BookingStatus {
func ConvertInternalToProtoBookingStatus(internalStatus internal.BookingStatus) proto.BookingSolidarityStatus {
switch internalStatus {
case internal.BookingStatusINITIATED:
return proto.BookingStatus_INITIATED
return proto.BookingSolidarityStatus_INITIATED
case internal.BookingStatusWAITINGPASSENGERCONFIRMATION:
return proto.BookingStatus_WAITING_PASSENGER_CONFIRMATION
return proto.BookingSolidarityStatus_WAITING_PASSENGER_CONFIRMATION
case internal.BookingStatusWAITINGDRIVERCONFIRMATION:
return proto.BookingStatus_WAITING_DRIVER_CONFIRMATION
return proto.BookingSolidarityStatus_WAITING_DRIVER_CONFIRMATION
case internal.BookingStatusCONFIRMED:
return proto.BookingStatus_CONFIRMED
return proto.BookingSolidarityStatus_CONFIRMED
case internal.BookingStatusCANCELLED:
return proto.BookingStatus_CANCELLED
return proto.BookingSolidarityStatus_CANCELLED
case internal.BookingStatusCOMPLETEDPENDINGVALIDATION:
return proto.BookingStatus_COMPLETED_PENDING_VALIDATION
return proto.BookingSolidarityStatus_COMPLETED_PENDING_VALIDATION
case internal.BookingStatusVALIDATED:
return proto.BookingStatus_VALIDATED
return proto.BookingSolidarityStatus_VALIDATED
default:
return proto.BookingStatus_CONFIRMED
return proto.BookingSolidarityStatus_CONFIRMED
}
}

View File

@@ -164,7 +164,7 @@ func (s *SolidarityServiceServerImpl) SetDriverPunctualAvailabilities(ctx contex
}, nil
}
func (s *SolidarityServiceServerImpl) CreateBooking(ctx context.Context, req *proto.CreateBookingSilvermobiRequest) (resp *proto.CreateBookingSilvermobiResponse, err error) {
func (s *SolidarityServiceServerImpl) CreateBooking(ctx context.Context, req *proto.CreateBookingSolidarityRequest) (resp *proto.CreateBookingSolidarityResponse, 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,10 +202,10 @@ 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.CreateBookingSilvermobiResponse{
Booking: &proto.BookingSilvermobi{},
resp = &proto.CreateBookingSolidarityResponse{
Booking: &proto.BookingSolidarity{},
}
resp.Booking = &proto.BookingSilvermobi{
resp.Booking = &proto.BookingSolidarity{
Id: bookingRequest.ID,
Driver: &proto.User{
Id: driver.Driver.ID,
@@ -254,9 +254,9 @@ func (s *SolidarityServiceServerImpl) CreateBooking(ctx context.Context, req *pr
return resp, nil
}
func (s *SolidarityServiceServerImpl) UpdateBooking(ctx context.Context, req *proto.UpdateBookingSilvermobiRequest) (resp *proto.UpdateBookingSilvermobiResponse, err error) {
func (s *SolidarityServiceServerImpl) UpdateBooking(ctx context.Context, req *proto.UpdateBookingSolidarityRequest) (resp *proto.UpdateBookingSolidarityResponse, err error) {
if req.BookingId == "" || req.Status.String() == "" {
return &proto.UpdateBookingSilvermobiResponse{
return &proto.UpdateBookingSolidarityResponse{
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.UpdateBookingSilvermobiResponse{
return &proto.UpdateBookingSolidarityResponse{
Success: false,
}, err
}
return &proto.UpdateBookingSilvermobiResponse{
return &proto.UpdateBookingSolidarityResponse{
Success: true,
}, nil
}
func (s *SolidarityServiceServerImpl) GetBooking(ctx context.Context, req *proto.GetBookingSilvermobiRequest) (resp *proto.GetBookingSilvermobiResponse, err error) {
func (s *SolidarityServiceServerImpl) GetBooking(ctx context.Context, req *proto.GetBookingSolidarityRequest) (resp *proto.GetBookingSolidarityResponse, 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.GetBookingSilvermobiResponse{
Booking: &proto.BookingSilvermobi{},
resp = &proto.GetBookingSolidarityResponse{
Booking: &proto.BookingSolidarity{},
}
priceType := proto.PriceType_FREE
driver, err := s.Handler.GetDriver(context.Background(), booking.Driver.ID)
@@ -296,7 +296,7 @@ func (s *SolidarityServiceServerImpl) GetBooking(ctx context.Context, req *proto
}
car := driver.Car
distance := int64(booking.Distance)
resp.Booking = &proto.BookingSilvermobi{
resp.Booking = &proto.BookingSolidarity{
Id: booking.ID,
Driver: &proto.User{
Id: booking.Driver.ID,
@@ -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.BookingSilvermobi, 1)
respChan := make(chan []*proto.BookingSolidarity, 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.BookingSilvermobi {
var responses []*proto.BookingSilvermobi
func convertInternalBookingsToProto(s *SolidarityServiceServerImpl, bookings []internal.Booking, maxGoroutines int) []*proto.BookingSolidarity {
var responses []*proto.BookingSolidarity
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.BookingSilvermobi{
protoBooking := &proto.BookingSolidarity{
Id: booking.ID,
Status: ConvertInternalToProtoBookingStatus(booking.Status),
Driver: convertInternalUserToProtoUser(driver.Driver),