feat: New V3 version

This commit is contained in:
2026-02-07 13:53:54 +01:00
parent 0176945bd6
commit 8926cd7ecf
7 changed files with 300 additions and 127 deletions

29
src/schedule.rs Normal file
View 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,
})
}