Remove reqwest and tokio dependency
Use ureq http client instead
This commit is contained in:
13
src/main.rs
13
src/main.rs
@@ -4,27 +4,24 @@ use prettytable::{row, Cell, Row, Table};
|
||||
mod cli;
|
||||
mod mensa;
|
||||
|
||||
//use crate::mensa::*;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let args = cli::get_args();
|
||||
exec_arguments(&args).await?;
|
||||
exec_arguments(&args)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn exec_arguments(args: &cli::Args) -> Result<(), Box<dyn std::error::Error>> {
|
||||
fn exec_arguments(args: &cli::Args) -> Result<(), Box<dyn std::error::Error>> {
|
||||
let shedhalle = mensa::Mensa::from(mensa::MensaName::Shedhalle);
|
||||
let morgenstelle = mensa::Mensa::from(mensa::MensaName::Morgenstelle);
|
||||
|
||||
if args.morgenstelle {
|
||||
if let mensa::Mensa::Morgenstelle(resp) = morgenstelle.await? {
|
||||
if let mensa::Mensa::Morgenstelle(resp) = morgenstelle? {
|
||||
exec_arg_helper(args, &resp);
|
||||
}
|
||||
}
|
||||
|
||||
if args.shedhalle {
|
||||
if let mensa::Mensa::Shedhalle(resp) = shedhalle.await? {
|
||||
if let mensa::Mensa::Shedhalle(resp) = shedhalle? {
|
||||
exec_arg_helper(args, &resp);
|
||||
}
|
||||
}
|
||||
|
38
src/mensa.rs
38
src/mensa.rs
@@ -1,7 +1,10 @@
|
||||
extern crate serde_derive;
|
||||
use std::time::Duration;
|
||||
|
||||
use chrono::{Datelike, Local};
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
use ureq::{Agent, Error};
|
||||
|
||||
pub enum MensaName {
|
||||
Shedhalle,
|
||||
@@ -21,25 +24,34 @@ pub enum Mensa {
|
||||
}
|
||||
|
||||
impl Mensa {
|
||||
pub async fn from(name: MensaName) -> Result<Mensa, Box<dyn std::error::Error>> {
|
||||
pub fn from(name: MensaName) -> Result<Mensa, Error> {
|
||||
let agent: Agent = ureq::AgentBuilder::new()
|
||||
.timeout_read(Duration::from_secs(5))
|
||||
.timeout_write(Duration::from_secs(5))
|
||||
.build();
|
||||
|
||||
match name {
|
||||
MensaName::Shedhalle => {
|
||||
let resp = reqwest::get(
|
||||
"https://www.my-stuwe.de//wp-json/mealplans/v1/canteens/611?lang=de",
|
||||
)
|
||||
.await?
|
||||
.json::<MensaShedhalle>()
|
||||
.await?;
|
||||
let resp = agent
|
||||
.get("https://www.my-stuwe.de//wp-json/mealplans/v1/canteens/611?lang=de")
|
||||
.call()?
|
||||
.into_json::<MensaShedhalle>()?;
|
||||
//let resp = reqwest::blocking::get(
|
||||
// "https://www.my-stuwe.de//wp-json/mealplans/v1/canteens/611?lang=de",
|
||||
//)?
|
||||
//.json::<MensaShedhalle>()?;
|
||||
|
||||
Ok(Mensa::Shedhalle(resp))
|
||||
}
|
||||
MensaName::Morgenstelle => {
|
||||
let resp = reqwest::get(
|
||||
"https://www.my-stuwe.de//wp-json/mealplans/v1/canteens/621?lang=de",
|
||||
)
|
||||
.await?
|
||||
.json::<MensaMorgenstelle>()
|
||||
.await?;
|
||||
//let resp = reqwest::blocking::get(
|
||||
// "https://www.my-stuwe.de//wp-json/mealplans/v1/canteens/621?lang=de",
|
||||
//)?
|
||||
//.json::<MensaMorgenstelle>()?;
|
||||
let resp = agent
|
||||
.get("https://www.my-stuwe.de//wp-json/mealplans/v1/canteens/621?lang=de")
|
||||
.call()?
|
||||
.into_json::<MensaMorgenstelle>()?;
|
||||
|
||||
Ok(Mensa::Morgenstelle(resp))
|
||||
}
|
||||
|
Reference in New Issue
Block a user