🥢 Welcome to openmensa-rs 🍴
rust library to interact with the openmensa api
---
## Basic usage 🔧
This library provides a way to build request to the openmensa api and deserialize into rust structures.
Provided are requests for `Canteen`, `Meal` and `Day`.
### Requesting a list of all canteens
```rust
use openmensa_rs::request::CanteenRequest;
#[tokio::main]
async fn main() {
println!("List of all canteens: ");
let list = CanteenRequest::new().build().await;
println!("{:?}", list);
}
```
### Requesting the meals for a single canteen
```rust
use openmensa_rs::{req_canteens, request::MealRequest};
#[tokio::main]
async fn main() {
let list = req_canteens().await.unwrap();
// Print out the meals offered in the first canteen
println!("Meals in the {} canteen on the {}", list[0].name(), chrono::Utc::today());
let meals = MealRequest::new(list[0].id(), chrono::Utc::today())
.build()
.await
.unwrap();
println!("{:?}", meals);
}
```
### Shorthands for generic requests
If you want to get all information and specify no further constraints for your requests, you can use the provided shorthands `req_canteens`, `req_days` and `req_meals`.
```rust
use openmensa_rs::req_canteens;
#[tokio::main]
async fn main() {
let list = req_canteens().await.unwrap();
println!("First canteens has id {} and is called {}", list[0].id(), list[0].name());
}
```
## Add this crate 📦
All you have to do is add in your `Cargo.toml` under `dependencies`
```toml
[dependencies]
openmensa-rs = "^0"
```
## Troubleshooting
If you have any troubles using this library or you find any problems feel free to open an issue. Explaining your problem and if possible provide a short code snippet.
## Authors
**Johannes Wünsche**
> [:octocat: `@jwuensche`](https://github.com/jwuensche)
> [:elephant: `@fredowald@mastodon.social`](https://mastodon.social/web/accounts/843376)
> [:bird: `@Fredowald`](https://twitter.com/fredowald)
__This README template is based on group works with [fin-ger](https://github.com/fin-ger).__
## Show your support
Give a :star: if this project helped you!