[][src]Function dhl_api::get_dhl_package_status

pub async fn get_dhl_package_status<'_>(
    package_id: &'_ str
) -> Result<DHLPackageStatus, Error>

Returns a DHLPackageStatus struct. You should check if it actually has any data with: DHLPackageStatus.items[0].package_not_found.has_some()
DHLPackageItem.package_not_found will only be set if no package was found for that tracking code.

Arguments

  • package_id - Tracking code as &str of the parcel you wish to query, usually a number but sometimes contains letters.

Examples

This example is not tested
use dhl_api::get_dhl_package_status;
let status = get_dhl_package_status("123456789").await?;
for item in status.items {
    if item.package_not_found.is_some() {
        // This item was not found

        let why_not_found = item.package_not_found.unwrap();
        // if why_not_found.no_data_available { ...
        // if why_not_found.not_a_dhl_package { ...

        continue;
    }

    let tracking_code = &item.id;

    if item.has_complete_details {
        let details = &item.item_details;

        for event in &details.history.events.unwrap() {
            // Do whatever you need 🦈
        }
    }
}