openmensa-rs

Crates.ioopenmensa-rs
lib.rsopenmensa-rs
version0.4.0
sourcesrc
created_at2019-11-10 21:11:34.82732
updated_at2021-06-03 18:56:20.628302
descriptionA library to interact with the openmensa api
homepage
repositoryhttps://github.com/jwuensche/openmensa-rs
max_upload_size
id180102
size54,662
Johannes Wünsche (jwuensche)

documentation

https://docs.rs/openmensa-rs

README

🥢 Welcome to openmensa-rs 🍴

GitHub GitHub PRs Welcome

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

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

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.

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

[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
:elephant: @fredowald@mastodon.social
:bird: @Fredowald

This README template is based on group works with fin-ger.

Show your support

Give a :star: if this project helped you!

Commit count: 34

cargo fmt