feat: New V3 version
This commit is contained in:
29
src/schedule.rs
Normal file
29
src/schedule.rs
Normal file
@@ -0,0 +1,29 @@
|
||||
use std::collections::HashMap;
|
||||
|
||||
use crate::api::fetch_api;
|
||||
use crate::models::{DailySchedule, SuplError, SuplResult};
|
||||
|
||||
pub fn get_schedule_impl(provider_url: &str, class_name: String) -> Result<SuplResult, SuplError> {
|
||||
let resp = fetch_api(provider_url)?;
|
||||
|
||||
let mut schedule_output = HashMap::new();
|
||||
|
||||
for (date, daily_data) in resp.schedule {
|
||||
if let Some(class_changes) = daily_data.changes.get(&class_name) {
|
||||
schedule_output.insert(
|
||||
date,
|
||||
DailySchedule {
|
||||
info: daily_data.info,
|
||||
changes: class_changes.clone(),
|
||||
absence: daily_data.absence,
|
||||
takes_place: daily_data.takes_place,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(SuplResult {
|
||||
status: resp.status,
|
||||
schedule: schedule_output,
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user