Files
jecna-supl-client/src/schedule.rs
2026-02-07 13:53:54 +01:00

30 lines
864 B
Rust

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,
})
}