paket/libpaket/README.md
2024-08-18 18:05:21 +02:00

38 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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](https://github.com/rust-lang/rfcs/blob/master/text/1270-deprecation.md) or the [rust reference docs](https://doc.rust-lang.org/reference/attributes/diagnostics.html)).
- (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)
```rust
// 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();
}
```