getOptimizeResultWithId static method
Retrieves the optimization route ID using request parameters.
optimizeRequest
- The parameters for the optimization request.
requestOptions
- Optional request options for the HTTP request.
Implementation
static Future<OptimizeRouteResultResponse> getOptimizeResultWithId(
String resultId,
{int retry = 5,
Options? requestOptions}) async {
assert(_accessKey.isNotEmpty, "Access key is empty,Please initialize SDK.");
String requestUrl = "$_baseUri/optimization/v2/result?key=$_accessKey&id=$resultId";
int attempt = 0;
while (attempt <= retry) {
attempt++;
await Future.delayed(const Duration(seconds: 2));
try {
var response =
await ApiService().get(requestUrl, options: requestOptions);
var optResult = OptimizeRouteResultResponse.fromJson(response.data);
if (optResult.result != null &&
optResult.result?.routes?.isNotEmpty == true) {
optResult.status = response.statusCode.toString();
return optResult;
} else {
if (attempt > retry) {
return OptimizeRouteResultResponse(
status: "1005",
message: "Optimize route is empty, please retry.");
}
}
} 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 OptimizeRouteResultResponse(
status: statusCode, message: message);
}
return OptimizeRouteResultResponse(
status: "1001", message: "Failed to optimize route: $error");
}
}
return OptimizeRouteResultResponse(
status: "1002", message: "Unknown error after $retry attempts");
}