getOptimizeRouteIdWithRequestBody static method

Future<OptimizeRouteResponse> getOptimizeRouteIdWithRequestBody(
  1. Map<String, dynamic> requestBody, {
  2. Options? requestOptions,
})

Retrieves the optimization route ID using a custom request body.

requestBody - The request body as a map. requestOptions - Optional request options for the HTTP request.

Implementation

static Future<OptimizeRouteResponse> getOptimizeRouteIdWithRequestBody(
    Map<String, dynamic> requestBody,
    {Options? requestOptions}) async {
  assert(_accessKey.isNotEmpty, "Access key is empty,Please initialize SDK.");
  String requestUrl = "$_baseUri/optimization/v2?key=$_accessKey";
  try {
    var response = await ApiService()
        .post(requestUrl, requestBody, options: requestOptions);
    var optimizeRouteResponse = OptimizeRouteResponse.fromJson(response.data);
    optimizeRouteResponse.status = response.statusCode.toString();
    return optimizeRouteResponse;
  } catch (error) {
    if (error is DioException) {
      var map = error.response?.data as Map?;
      String? statusCode = map?["status"]?.toString();
      String? message = map?["msg"] ?? map?["message"];
      return OptimizeRouteResponse(status: statusCode, message: message);
    }
    return OptimizeRouteResponse(
        status: "1004", message: "Failed to optimize route: $error");
  }
}