From 57dd74c6cfd8da3c265c8c57cfc6b6f631ff9814 Mon Sep 17 00:00:00 2001 From: Joonas Kerttula Date: Fri, 5 Dec 2025 16:19:16 +0200 Subject: [PATCH 1/2] feat!: implement consolidated error codes for getDeliveryVehicle - Add GET_DELIVERY_VEHICLE_ERROR_CODE constant to Android JsErrors.java - Update iOS error constants to match Android naming convention - Replace raw exception rejection with consolidated error code on Android - Ensure error codes and messages are identical across platforms Fixes #2 --- .../android/react/driversdk/lmfs/DeliveryDriverModule.java | 6 ++++-- .../google/android/react/driversdk/shared/JsErrors.java | 4 ++++ ios/DeliveryDriverController.m | 4 ++-- ios/JsErrorsConstants.h | 4 ++-- ios/JsErrorsConstants.m | 7 +++---- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/android/src/main/java/com/google/android/react/driversdk/lmfs/DeliveryDriverModule.java b/android/src/main/java/com/google/android/react/driversdk/lmfs/DeliveryDriverModule.java index bf6d3a6..39e4918 100644 --- a/android/src/main/java/com/google/android/react/driversdk/lmfs/DeliveryDriverModule.java +++ b/android/src/main/java/com/google/android/react/driversdk/lmfs/DeliveryDriverModule.java @@ -193,8 +193,10 @@ public void onSuccess(DeliveryVehicle deliveryVehicle) { } public void onFailure(@NonNull Throwable thrown) { - // TODO: Expose proper gRPC Error code to RN. - promise.reject(thrown); + promise.reject( + JsErrors.GET_DELIVERY_VEHICLE_ERROR_CODE, + JsErrors.GET_DELIVERY_VEHICLE_ERROR_MESSAGE, + thrown); } }, // causes the callbacks to be executed on the main (UI) thread diff --git a/android/src/main/java/com/google/android/react/driversdk/shared/JsErrors.java b/android/src/main/java/com/google/android/react/driversdk/shared/JsErrors.java index 59e454c..ffdad8b 100644 --- a/android/src/main/java/com/google/android/react/driversdk/shared/JsErrors.java +++ b/android/src/main/java/com/google/android/react/driversdk/shared/JsErrors.java @@ -43,4 +43,8 @@ public class JsErrors { public static final String DRIVER_API_NOT_INITIALIZED_CODE = "DRIVER_API_NOT_INITIALIZED_CODE"; public static final String DRIVER_API_NOT_INITIALIZED_MESSAGE = "Driver API has not been initialized."; + + public static final String GET_DELIVERY_VEHICLE_ERROR_CODE = "GET_DELIVERY_VEHICLE_ERROR_CODE"; + public static final String GET_DELIVERY_VEHICLE_ERROR_MESSAGE = + "Failed to retrieve delivery vehicle information."; } diff --git a/ios/DeliveryDriverController.m b/ios/DeliveryDriverController.m index 7320a57..14e19a1 100644 --- a/ios/DeliveryDriverController.m +++ b/ios/DeliveryDriverController.m @@ -81,8 +81,8 @@ - (void)getDeliveryVehicle:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseR [_driverAPI.deliveryVehicleManager getVehicleWithCompletion:^(GMTDDeliveryVehicle *_Nullable vehicle, NSError *_Nullable error) { if (error != nil || vehicle == nil) { - reject(kDriverApiFailedToGetDeliveryVehicleCode, - kDriverApiFailedToGetDeliveryVehicleMessage, nil); + reject(kGetDeliveryVehicleErrorCode, + kGetDeliveryVehicleErrorMessage, error); return; } diff --git a/ios/JsErrorsConstants.h b/ios/JsErrorsConstants.h index e27f699..ae7b4fb 100644 --- a/ios/JsErrorsConstants.h +++ b/ios/JsErrorsConstants.h @@ -22,5 +22,5 @@ extern NSString* const kDriverApiAlreadyExistsErrorCode; extern NSString* const kDriverApiAlreadyExistsErrorMessage; extern NSString* const kNavigatorNotInitializedErrorCode; extern NSString* const kNavigatorNotInitializedErrorMessage; -extern NSString* const kDriverApiFailedToGetDeliveryVehicleCode; -extern NSString* const kDriverApiFailedToGetDeliveryVehicleMessage; \ No newline at end of file +extern NSString* const kGetDeliveryVehicleErrorCode; +extern NSString* const kGetDeliveryVehicleErrorMessage; \ No newline at end of file diff --git a/ios/JsErrorsConstants.m b/ios/JsErrorsConstants.m index 77c1f95..fb8e627 100644 --- a/ios/JsErrorsConstants.m +++ b/ios/JsErrorsConstants.m @@ -23,7 +23,6 @@ NSString* const kDriverApiAlreadyExistsErrorMessage = @"Driver API already exists."; NSString* const kNavigatorNotInitializedErrorCode = @"NO_NAVIGATOR_CODE"; NSString* const kNavigatorNotInitializedErrorMessage = @"Navigator is not initialized."; -NSString* const kDriverApiFailedToGetDeliveryVehicleCode = - @"DRIVER_API_FAILED_TO_GET_DELIVERY_VEHICLE"; -NSString* const kDriverApiFailedToGetDeliveryVehicleMessage = - @"There was an error retrieving the delivery vehicle"; +NSString* const kGetDeliveryVehicleErrorCode = @"GET_DELIVERY_VEHICLE_ERROR_CODE"; +NSString* const kGetDeliveryVehicleErrorMessage = + @"Failed to retrieve delivery vehicle information."; From 9617e09e27eb3c6030331e01153cbb1994347c5d Mon Sep 17 00:00:00 2001 From: Joonas Kerttula Date: Mon, 8 Dec 2025 16:33:22 +0200 Subject: [PATCH 2/2] chore: format obj-c code --- ios/DeliveryDriverController.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ios/DeliveryDriverController.m b/ios/DeliveryDriverController.m index 14e19a1..767018d 100644 --- a/ios/DeliveryDriverController.m +++ b/ios/DeliveryDriverController.m @@ -81,8 +81,7 @@ - (void)getDeliveryVehicle:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseR [_driverAPI.deliveryVehicleManager getVehicleWithCompletion:^(GMTDDeliveryVehicle *_Nullable vehicle, NSError *_Nullable error) { if (error != nil || vehicle == nil) { - reject(kGetDeliveryVehicleErrorCode, - kGetDeliveryVehicleErrorMessage, error); + reject(kGetDeliveryVehicleErrorCode, kGetDeliveryVehicleErrorMessage, error); return; }