sicepat method

Future<DeliveryData> sicepat({
  1. String resiId = "005208225151",
})

Implementation

Future<scheme.DeliveryData> sicepat({
  String resiId = "005208225151",
}) async {
  String urlApi = "https://content-main-api-production.sicepat.com";
  // "https://content-main-api-production.sicepat.com/public/check-awb/005208225151";
  http.Response response = await http.get(
    Uri.parse(urlApi).replace(path: "/public/check-awb/${resiId.toString()}"),
    headers: {
      "Accept": "application/json, text/plain, */*",
      "Accept-Encoding": "gzip, deflate, br",
      "Accept-Language": "en-US,en;q=0.9,id;q=0.8",
      "Referer": "https://www.sicepat.com/",
      "Sec-Ch-Ua":
          "\"Google Chrome\";v=\"113\", \"Chromium\";v=\"113\", \"Not-A.Brand\";v=\"24\"",
      "Sec-Ch-Ua-Mobile": "?0",
      // "Sec-Ch-Ua-Platform": "\"Linux\"",
      // "Sec-Fetch-Dest": "empty",
      // "Sec-Fetch-Mode": "cors",
      // "Sec-Fetch-Site": "same-site",
      "User-Agent":
          "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
    },
  );

  Map jsonBodyRaw = () {
    try {
      return json.decode(response.body);
    } catch (e) {}
    return {};
  }.call();
  if (response.statusCode != 200) {
    return scheme.DeliveryData({
      "@type": "error",
      "message": "",
      "description": "",
    });
  }
  scheme_raw.SicepatRawData sicepatRawData =
      scheme_raw.SicepatRawData(jsonBodyRaw);
  scheme_raw.SicepatData sicepatData = sicepatRawData.sicepat.result;
  List<scheme_raw.SicepatDataTrackHistory> sicepat_track_history =
      sicepatData.track_history;
  List<Map> jsonDataTrackHistory = sicepat_track_history
      .map((scheme_raw.SicepatDataTrackHistory sicepatDataTrackHistory) {
    Map jsonData = {
      "@type": "trackHistoryData",
      "date": sicepatDataTrackHistory.date_time ?? "",
      "status": sicepatDataTrackHistory.status ?? "",
      "message": sicepatDataTrackHistory.city ?? "",
    };

    return jsonData;
  }).toList();
  Map jsonData = {
    "@type": "sicepatData",
    "id": sicepatData.waybill_number,
    "sender": {
      "@type": "senderData",
      "name": sicepatData.sender,
      "address": sicepatData.sender_address,
    },
    "receiver": {
      "@type": "receiverData",
      "name": sicepatData.receiver_name,
      "address": sicepatData.receiver_address,
    },
    "service": sicepatData.service,
    "weight": sicepatData.weight,
    "platform": sicepatData.partner,
    "send_date": sicepatData.send_date,
    "real_price": sicepatData.realprice,
    "total_price": sicepatData.totalprice,
    "track_history": jsonDataTrackHistory,
  };
  return scheme.DeliveryData(jsonData);
}