sql error handling: no rows + duplicated key
This commit is contained in:
@@ -44,7 +44,7 @@ func (s *BookingsFilterAPIService) FilterBookingsByStatus(ctx context.Context, o
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
if strings.Contains(err.Error(), " no rows in result set") {
|
||||
return Response(http.StatusBadRequest, "ID not found in the database"), nil
|
||||
return Response(http.StatusBadRequest, "no related data recheck your parameters"), nil
|
||||
} else {
|
||||
return Response(http.StatusInternalServerError, nil), nil
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ import (
|
||||
"solidarity-service/handler"
|
||||
"solidarity-service/internal"
|
||||
"solidarity-service/storage"
|
||||
"solidarity-service/utils"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// DriverAvailabilityAndScheduleAPIService is a service that implements the logic for the DriverAvailabilityAndScheduleAPIServicer
|
||||
@@ -77,6 +79,9 @@ func (s *DriverAvailabilityAndScheduleAPIService) DriverPunctualAvailabilitiesPo
|
||||
driver.Car.Model = driverPunctualAvailabilitiesRequest.Car.Model
|
||||
err := s.storage.CreateDriver(driver)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), utils.SQL_DUPLICATE) {
|
||||
return Response(http.StatusBadRequest, "ID already in use"), nil
|
||||
}
|
||||
return Response(http.StatusInternalServerError, nil), errors.New("DriverPunctualAvailabilitiesPost internal server error")
|
||||
} else {
|
||||
return Response(201, "Punctual driver availabilities set successfully"), nil
|
||||
@@ -120,6 +125,9 @@ func (s *DriverAvailabilityAndScheduleAPIService) DriverRegularAvailabilitiesPos
|
||||
driver.Car.Model = driverRegularAvailabilitiesRequest.Car.Model
|
||||
err := s.storage.CreateDriver(driver)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), utils.SQL_DUPLICATE) {
|
||||
return Response(http.StatusBadRequest, "ID already in use"), nil
|
||||
}
|
||||
return Response(http.StatusInternalServerError, nil), errors.New("DriverPunctualAvailabilitiesPost internal server error")
|
||||
} else {
|
||||
return Response(201, "Regular driver availabilities set successfully"), nil
|
||||
|
||||
@@ -18,6 +18,7 @@ import (
|
||||
"solidarity-service/handler"
|
||||
"solidarity-service/internal"
|
||||
"solidarity-service/storage"
|
||||
"solidarity-service/utils"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@@ -44,7 +45,7 @@ func (s *InteractAPIService) GetBookings(ctx context.Context, operator string, b
|
||||
booking, err := s.storage.GetBooking(bookingId)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), " no rows in result set") {
|
||||
return Response(http.StatusBadRequest, "ID not found in the database"), nil
|
||||
return Response(http.StatusBadRequest, "no related data recheck your parameters"), nil
|
||||
} else {
|
||||
return Response(http.StatusInternalServerError, nil), errors.New("DriverPunctualAvailabilitiesPost internal server error")
|
||||
}
|
||||
@@ -114,7 +115,7 @@ func (s *InteractAPIService) PatchBookings(ctx context.Context, operator string,
|
||||
fmt.Println(err)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), " no rows in result set") {
|
||||
return Response(http.StatusBadRequest, "ID not found in the database"), nil
|
||||
return Response(http.StatusBadRequest, "no related data recheck your params"), nil
|
||||
}
|
||||
return Response(http.StatusInternalServerError, nil), nil
|
||||
}
|
||||
@@ -131,6 +132,9 @@ func (s *InteractAPIService) PostBookings(ctx context.Context, bookingRequest Bo
|
||||
booking.Operator = bookingRequest.Operator
|
||||
err := s.storage.CreateBooking(booking)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), utils.SQL_DUPLICATE) {
|
||||
return Response(http.StatusBadRequest, "ID already in use"), nil
|
||||
}
|
||||
return Response(http.StatusInternalServerError, nil), errors.New("PostBookings internal server error")
|
||||
}
|
||||
passenger, err := s.storage.GetPassenger(booking.Passenger_id)
|
||||
|
||||
@@ -19,6 +19,8 @@ import (
|
||||
"solidarity-service/handler"
|
||||
"solidarity-service/internal"
|
||||
"solidarity-service/storage"
|
||||
"solidarity-service/utils"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// PassengerTripRequestAPIService is a service that implements the logic for the PassengerTripRequestAPIServicer
|
||||
@@ -73,6 +75,9 @@ func (s *PassengerTripRequestAPIService) PassengerPost(ctx context.Context, pass
|
||||
passenger.Preferences.Music = passengerTripRequest.Preferences.Music
|
||||
err := s.storage.CreatePassenger(passenger)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), utils.SQL_DUPLICATE) {
|
||||
return Response(http.StatusBadRequest, "ID already in use"), nil
|
||||
}
|
||||
return Response(http.StatusInternalServerError, nil), errors.New("DriverPunctualAvailabilitiesPost internal server error")
|
||||
} else {
|
||||
return Response(201, "Trip request created"), nil
|
||||
|
||||
Reference in New Issue
Block a user