From 6d70a94c5d6ce93805f8a4f98ede7104031fbde1 Mon Sep 17 00:00:00 2001 From: r4m-cristianv Date: Tue, 28 Nov 2023 21:42:46 +0200 Subject: [PATCH 1/2] refactoring: Address, AssignVehicle, DriversScheduleswithTerritoriesV3, GetOrdersByCustomFields, OrdersManager, PickupDropoffJoint, RoutingManager, TelematicsGetVendorInfo, TelematicsManager --- .../DriversScheduleswithTerritoriesV3.java | 2 +- .../orders/GetOrdersByCustomFields.java | 3 +- .../pickupdropoff/PickupDropoffJoint.java | 2 +- .../sdk/examples/routes/AssignVehicle.java | 7 +++-- .../telematics/TelematicsGetVendorInfo.java | 6 ++-- .../sdk/services/orders/OrdersManager.java | 17 ++++++++++- .../sdk/services/routing/Address.java | 2 +- .../sdk/services/routing/RoutingManager.java | 18 +++++++++++- .../telematics/TelematicsManager.java | 29 ++++++++++++++----- 9 files changed, 65 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/route4me/sdk/examples/advancedconstraints/DriversScheduleswithTerritoriesV3.java b/src/main/java/com/route4me/sdk/examples/advancedconstraints/DriversScheduleswithTerritoriesV3.java index af8af0f..a0542eb 100644 --- a/src/main/java/com/route4me/sdk/examples/advancedconstraints/DriversScheduleswithTerritoriesV3.java +++ b/src/main/java/com/route4me/sdk/examples/advancedconstraints/DriversScheduleswithTerritoriesV3.java @@ -160,7 +160,7 @@ public static void main(String[] args) { optParameters.setAddresses(addresses); try { - DataObject responseObject = manager.runOptimization(optParameters); + DataObject responseObject = manager.runOptimizationWithRedirect0(optParameters); System.out.println("Optimization Problem ID:" + responseObject.getOptimizationProblemId()); System.out.println("State:" + OptimizationState.get(responseObject.getState().intValue())); if (responseObject.getAddresses() != null) { diff --git a/src/main/java/com/route4me/sdk/examples/orders/GetOrdersByCustomFields.java b/src/main/java/com/route4me/sdk/examples/orders/GetOrdersByCustomFields.java index 0b97197..2ab76de 100644 --- a/src/main/java/com/route4me/sdk/examples/orders/GetOrdersByCustomFields.java +++ b/src/main/java/com/route4me/sdk/examples/orders/GetOrdersByCustomFields.java @@ -2,7 +2,6 @@ package com.route4me.sdk.examples.orders; import com.route4me.sdk.exception.APIException; -import com.route4me.sdk.services.orders.Order; import com.route4me.sdk.services.orders.OrderRequest; import com.route4me.sdk.services.orders.OrdersManager; @@ -13,7 +12,7 @@ public static void main(String[] args) { String apiKey = System.getenv("R4M_API_KEY"); OrdersManager manager = new OrdersManager(apiKey); try { - List orders = manager.getOrders(new OrderRequest().setFields("member_id,order_id")); + List> orders = manager.getOrdersByCustomFields(new OrderRequest().setFields("member_id,order_id")); System.out.println(orders); } catch (APIException e) { //handle exception diff --git a/src/main/java/com/route4me/sdk/examples/pickupdropoff/PickupDropoffJoint.java b/src/main/java/com/route4me/sdk/examples/pickupdropoff/PickupDropoffJoint.java index 5e7b550..f466ba7 100644 --- a/src/main/java/com/route4me/sdk/examples/pickupdropoff/PickupDropoffJoint.java +++ b/src/main/java/com/route4me/sdk/examples/pickupdropoff/PickupDropoffJoint.java @@ -43,7 +43,7 @@ public static void main(String[] args) { address = new Address("4805 BELLEVUE AVE, Louisville, KY, 40215", 38.178844, -85.774864, 300); address.setPickUp("PD0004"); - address.setJoint(1); + address.setJoint(true); address.setAlias("Pickup - Customer 004"); addresses.add(address); diff --git a/src/main/java/com/route4me/sdk/examples/routes/AssignVehicle.java b/src/main/java/com/route4me/sdk/examples/routes/AssignVehicle.java index 7f1f5c4..e8f0ed7 100644 --- a/src/main/java/com/route4me/sdk/examples/routes/AssignVehicle.java +++ b/src/main/java/com/route4me/sdk/examples/routes/AssignVehicle.java @@ -7,6 +7,7 @@ import com.route4me.sdk.exception.APIException; import com.route4me.sdk.services.routing.Route; +import com.route4me.sdk.services.routing.RoutesRequest; import com.route4me.sdk.services.routing.RoutingManager; /** @@ -19,9 +20,9 @@ public static void main(String[] args) { String apiKey = System.getenv("R4M_API_KEY"); RoutingManager routeManager = new RoutingManager(apiKey); try { - String routeId = "FA249A8FAC4D7FA7938C77784737481F"; - String vehicleId = "64ACF1E576D078D853F935E788A42F93"; - Route newRoute = routeManager.assignVehicle(routeId, vehicleId); + Route route = routeManager.getRoute(new RoutesRequest().setId("")); //SET VALID ROUTE ID + String vehicleId = ""; //SET VALID VEHICLE ID + Route newRoute = routeManager.assignVehicle(route, vehicleId); System.out.println(newRoute); } catch (APIException e) { //handle exceptions diff --git a/src/main/java/com/route4me/sdk/examples/telematics/TelematicsGetVendorInfo.java b/src/main/java/com/route4me/sdk/examples/telematics/TelematicsGetVendorInfo.java index 942122b..37603d7 100644 --- a/src/main/java/com/route4me/sdk/examples/telematics/TelematicsGetVendorInfo.java +++ b/src/main/java/com/route4me/sdk/examples/telematics/TelematicsGetVendorInfo.java @@ -7,7 +7,7 @@ import com.route4me.sdk.exception.APIException; import com.route4me.sdk.services.telematics.TelematicsManager; -import com.route4me.sdk.services.telematics.TelematicsVendorsInfo; +import com.route4me.sdk.services.telematics.TelematicsVendorInfo; import java.util.logging.Level; import java.util.logging.Logger; @@ -22,8 +22,8 @@ public static void main(String[] args) { TelematicsManager manager = new TelematicsManager(apiKey); try { - TelematicsVendorsInfo vendor = manager.getTelematicsVendorInfo("3"); - System.out.println(vendor.getVendor()); + TelematicsVendorInfo vendor = manager.getTelematicsVendorInfo("3", "62f6197505da3f545c4fc9cb87ae76c9"); + System.out.println(vendor); } catch (APIException ex) { Logger.getLogger(TelematicsRegisterMember.class.getName()).log(Level.INFO, ex.toString()); diff --git a/src/main/java/com/route4me/sdk/services/orders/OrdersManager.java b/src/main/java/com/route4me/sdk/services/orders/OrdersManager.java index 3acb526..1d04c8f 100644 --- a/src/main/java/com/route4me/sdk/services/orders/OrdersManager.java +++ b/src/main/java/com/route4me/sdk/services/orders/OrdersManager.java @@ -36,6 +36,11 @@ public List getOrders(OrderRequest request) throws APIException { return this.makeJSONRequest(RequestMethod.GET, builder, request, GetOrdersResponse.class).getResults(); } + public List> getOrdersByCustomFields(OrderRequest request) throws APIException { + URIBuilder builder = Manager.defaultBuilder(ORDERS_EP); + return this.makeJSONRequest(RequestMethod.GET, builder, request, GetOrdersResponseByCustomFields.class).getResults(); + } + public List getOrdersByScheduledDate(List scheduledForYYMMDD) throws APIException { return this.getOrdersByScheduledDate(scheduledForYYMMDD, 30, 0); } @@ -106,10 +111,20 @@ private static class GetOrdersResponse { private Integer total; } + @Getter + @Setter(AccessLevel.PRIVATE) + private static class GetOrdersResponseByCustomFields { + @SerializedName("results") + private List> results; + @SerializedName("total") + private Integer total; + @SerializedName("fields") + private List fields; + } + @Data @RequiredArgsConstructor private static class DeleteOrdersRequest { - @SerializedName("order_ids") private final long[] orderIds; } diff --git a/src/main/java/com/route4me/sdk/services/routing/Address.java b/src/main/java/com/route4me/sdk/services/routing/Address.java index 5a54f4d..5293a65 100644 --- a/src/main/java/com/route4me/sdk/services/routing/Address.java +++ b/src/main/java/com/route4me/sdk/services/routing/Address.java @@ -165,7 +165,7 @@ public class Address { @SerializedName("dropoff") private String dropOff; @SerializedName("joint") - private Integer joint; + private Boolean joint; @SerializedName("tags") @QueryParameter("tags") diff --git a/src/main/java/com/route4me/sdk/services/routing/RoutingManager.java b/src/main/java/com/route4me/sdk/services/routing/RoutingManager.java index 13e7313..bbbcca9 100644 --- a/src/main/java/com/route4me/sdk/services/routing/RoutingManager.java +++ b/src/main/java/com/route4me/sdk/services/routing/RoutingManager.java @@ -65,6 +65,12 @@ public DataObject runOptimization(OptimizationParameters parameters) throws APIE URIBuilder builder = Manager.defaultBuilder(OPTIMIZATION_EP); return this.makeJSONRequest(RequestMethod.POST, builder, parameters, DataObject.class); } + + public DataObject runOptimizationWithRedirect0(OptimizationParameters parameters) throws APIException { + URIBuilder builder = Manager.defaultBuilder(OPTIMIZATION_EP); + builder.setParameter("redirect", "0"); + return this.makeJSONRequest(RequestMethod.POST, builder, parameters, DataObject.class); + } public DataObject[] runOptimizationMulti(OptimizationParameters parameters) throws APIException { URIBuilder builder = Manager.defaultBuilder(OPTIMIZATION_EP); @@ -138,7 +144,7 @@ public DataObject moveAddresses(DataObject dataObj, String routeId) throws APIEx } public void deleteAddress(String routeId, Number routeDestinationId) throws APIException { - URIBuilder builder = Manager.defaultBuilder(ROUTE_EP); + URIBuilder builder = Manager.defaultBuilder(ADDRESS_EP); builder.setParameter("route_id", routeId); builder.setParameter("route_destination_id", routeDestinationId.toString()); this.makeRequest(RequestMethod.DELETE, builder, "", null); @@ -231,6 +237,16 @@ public Route assignVehicle(String routeId, String vehicle_id) throws APIExceptio route.setParameters(params); return updateRoute(route); } + + public Route assignVehicle(Route route, String vehicle_id) throws APIException { + Parameters params = new Parameters(); + params.setVehicleId(vehicle_id); + route.setParameters(params); + URIBuilder builder = Manager.defaultBuilder(ROUTE_EP); + String routeId = route.getId(); + builder.setParameter("route_id", routeId); + return this.makeJSONRequest(RequestMethod.PUT, builder, route.getParameters(), Route.class); + } public RouteDeletedResponse deleteRoutes(String... routeIds) throws APIException { URIBuilder builder = Manager.defaultBuilder(ROUTE_EP); diff --git a/src/main/java/com/route4me/sdk/services/telematics/TelematicsManager.java b/src/main/java/com/route4me/sdk/services/telematics/TelematicsManager.java index 6d5b05d..61bde25 100644 --- a/src/main/java/com/route4me/sdk/services/telematics/TelematicsManager.java +++ b/src/main/java/com/route4me/sdk/services/telematics/TelematicsManager.java @@ -28,7 +28,7 @@ public TelematicsManager(String apiKey) { super(apiKey); } - private URIBuilder getTelemaricsVendorURI() { + private URIBuilder getTelematicsVendorURI() { URIBuilder builder = new URIBuilder(); builder.setScheme("https"); builder.setHost("telematics.route4me.com"); @@ -36,6 +36,14 @@ private URIBuilder getTelemaricsVendorURI() { return builder; } + private URIBuilder getTelematicsVendorURI(String path) { + URIBuilder builder = new URIBuilder(); + builder.setScheme("https"); + builder.setHost("api.route4me.com"); + builder.setPath(path); + return builder; + } + public TelematicsMemberRegister registerMember(Integer memberID) throws APIException { URIBuilder builder = Manager.defaultBuilder(TELEMATICS_REGISTER_V4); builder.setParameter("member_id", memberID.toString()); @@ -50,20 +58,25 @@ public List getTelematicsConnections(String apiToken) thro } public TelematicsVendorsInfo getTelematicsVendorsInfo() throws APIException { - URIBuilder builder = getTelemaricsVendorURI(); + URIBuilder builder = getTelematicsVendorURI(TELEMATICS_VENDORS_INFO_V4); return makeRequest(RequestMethod.GET, builder, "", TelematicsVendorsInfo.class); - } - public TelematicsVendorsInfo getTelematicsVendorInfo(String vendorID) throws APIException { - URIBuilder builder = getTelemaricsVendorURI(); - builder.setParameter("vendor_id", vendorID); + public TelematicsVendorsInfo getTelematicsVendorsInfo(String apiToken) throws APIException { + URIBuilder builder = getTelematicsVendorURI(TELEMATICS_VENDORS_INFO_V4); + builder.setParameter("api_token", apiToken); return makeRequest(RequestMethod.GET, builder, "", TelematicsVendorsInfo.class); + } + public TelematicsVendorInfo getTelematicsVendorInfo(String vendorID, String apiToken) throws APIException { + URIBuilder builder = getTelematicsVendorURI(TELEMATICS_VENDORS_INFO_V4); + builder.setParameter("api_token", apiToken); + builder.setParameter("vendor_id", vendorID); + return makeRequest(RequestMethod.GET, builder, "", TelematicsVendorInfo.class); } private TelematicsVendorsInfo searchVendor(String country, String size, String keyWord, String feature, String page, String perPage) throws APIException { - URIBuilder builder = getTelemaricsVendorURI(); + URIBuilder builder = getTelematicsVendorURI(); if (country != null) { builder.setParameter("country", country); } @@ -172,7 +185,7 @@ private List parseVendorFeaturesComparison(Telematic } public List compareTelematicsVendors(String vendorIDs) throws APIException { - URIBuilder builder = getTelemaricsVendorURI(); + URIBuilder builder = getTelematicsVendorURI(); builder.setParameter("vendors", vendorIDs); TelematicsVendorsInfo vendors = makeRequest(RequestMethod.GET, builder, "", TelematicsVendorsInfo.class); return parseVendorFeaturesComparison(vendors); From 1e3c8ab9e629835278f68abecaa0583ca46c1cbe Mon Sep 17 00:00:00 2001 From: r4m-cristianv Date: Wed, 20 Dec 2023 22:08:30 +0200 Subject: [PATCH 2/2] fix: TelematicsManager, TelematicsGetVendorInfo --- .../telematics/TelematicsGetVendorInfo.java | 7 +++--- .../telematics/TelematicsManager.java | 23 ++++--------------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/route4me/sdk/examples/telematics/TelematicsGetVendorInfo.java b/src/main/java/com/route4me/sdk/examples/telematics/TelematicsGetVendorInfo.java index 37603d7..9e38819 100644 --- a/src/main/java/com/route4me/sdk/examples/telematics/TelematicsGetVendorInfo.java +++ b/src/main/java/com/route4me/sdk/examples/telematics/TelematicsGetVendorInfo.java @@ -7,7 +7,8 @@ import com.route4me.sdk.exception.APIException; import com.route4me.sdk.services.telematics.TelematicsManager; -import com.route4me.sdk.services.telematics.TelematicsVendorInfo; +import com.route4me.sdk.services.telematics.TelematicsVendorsInfo; + import java.util.logging.Level; import java.util.logging.Logger; @@ -22,8 +23,8 @@ public static void main(String[] args) { TelematicsManager manager = new TelematicsManager(apiKey); try { - TelematicsVendorInfo vendor = manager.getTelematicsVendorInfo("3", "62f6197505da3f545c4fc9cb87ae76c9"); - System.out.println(vendor); + TelematicsVendorsInfo vendor = manager.getTelematicsVendorInfo("3"); + System.out.println(vendor.getVendor()); } catch (APIException ex) { Logger.getLogger(TelematicsRegisterMember.class.getName()).log(Level.INFO, ex.toString()); diff --git a/src/main/java/com/route4me/sdk/services/telematics/TelematicsManager.java b/src/main/java/com/route4me/sdk/services/telematics/TelematicsManager.java index 61bde25..c8ebd2b 100644 --- a/src/main/java/com/route4me/sdk/services/telematics/TelematicsManager.java +++ b/src/main/java/com/route4me/sdk/services/telematics/TelematicsManager.java @@ -36,14 +36,6 @@ private URIBuilder getTelematicsVendorURI() { return builder; } - private URIBuilder getTelematicsVendorURI(String path) { - URIBuilder builder = new URIBuilder(); - builder.setScheme("https"); - builder.setHost("api.route4me.com"); - builder.setPath(path); - return builder; - } - public TelematicsMemberRegister registerMember(Integer memberID) throws APIException { URIBuilder builder = Manager.defaultBuilder(TELEMATICS_REGISTER_V4); builder.setParameter("member_id", memberID.toString()); @@ -58,21 +50,14 @@ public List getTelematicsConnections(String apiToken) thro } public TelematicsVendorsInfo getTelematicsVendorsInfo() throws APIException { - URIBuilder builder = getTelematicsVendorURI(TELEMATICS_VENDORS_INFO_V4); - return makeRequest(RequestMethod.GET, builder, "", TelematicsVendorsInfo.class); - } - - public TelematicsVendorsInfo getTelematicsVendorsInfo(String apiToken) throws APIException { - URIBuilder builder = getTelematicsVendorURI(TELEMATICS_VENDORS_INFO_V4); - builder.setParameter("api_token", apiToken); + URIBuilder builder = getTelematicsVendorURI(); return makeRequest(RequestMethod.GET, builder, "", TelematicsVendorsInfo.class); } - public TelematicsVendorInfo getTelematicsVendorInfo(String vendorID, String apiToken) throws APIException { - URIBuilder builder = getTelematicsVendorURI(TELEMATICS_VENDORS_INFO_V4); - builder.setParameter("api_token", apiToken); + public TelematicsVendorsInfo getTelematicsVendorInfo(String vendorID) throws APIException { + URIBuilder builder = getTelematicsVendorURI(); builder.setParameter("vendor_id", vendorID); - return makeRequest(RequestMethod.GET, builder, "", TelematicsVendorInfo.class); + return makeRequest(RequestMethod.GET, builder, "", TelematicsVendorsInfo.class); } private TelematicsVendorsInfo searchVendor(String country, String size, String keyWord, String feature, String page, String perPage) throws APIException {