paket/libpaket
2024-10-02 17:46:30 +02:00
..
src fix: libpaket: improve decode-error string 2024-10-02 17:46:30 +02:00
Cargo.toml chore: move common deps to workspace root 2024-10-02 17:35:44 +02:00
README.md feat: document deprecation policy 2024-08-18 18:05:21 +02:00

libpaket

This is an unofficial client to various DHL APIs, more specific the ones that the proprietary app Post & DHL uses.

Features

  • Mail Notification (Briefankündigung)

Goals

  • app-driven parcel lockers (App-gesteuerte Packstation)

Deprecation notice

It's recommended that consumers of this crate are always tracking the latest version. If the upstream API changes too much or a better API here is created, there are two ways to mark a function or struct deprecated:

  • Soft deprecation/Crate API changes: The normal deprecation notice via #[deprecated] (see the RFC#1270 or the rust reference docs).
  • (Fatal) Upstream API Changes: The soft deprecation marked with deny(deprecated), you can try to override this, but functions with a LibraryResult will always return LibraryError::Deprecated. (NOTE: LibrarayError::APIChange is reserved for the case where the API-change is unknown. Please upgrade to a or wait for a newer crate version.)

Examples

In the examples error-handling is ignored for simplicity. You dont want to do that.

Getting mail notifications (Briefankündigung)

// Requires a logged-in user.
let token: libpaket::login::DHLIdToken;

let response = libpaket::WebClient::new().advices(&token).await.unwrap();

let client = libpaket::AdviceClient::new();

if let Some(current_advice) = response.get_current_advice() {
    let advices_token = client.access_token(&response),unwrap();
    let bin: Vec<u8> = client.fetch_advice_image(&current_advice.list[0], advice_token).await.unwrap();
}