diff --git a/src/absence.rs b/src/absence.rs index 389725e..ebfe0d1 100644 --- a/src/absence.rs +++ b/src/absence.rs @@ -33,3 +33,11 @@ pub struct SubjectAbsence { pub school: u16, pub distance_teaching: u16, } + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct SubjectAbsenceOverviewResponse { + pub percentage_threshold: f64, + pub absences: Option>, + pub absences_per_subject: Option>, +} diff --git a/src/events/endpoints.rs b/src/events/endpoints.rs new file mode 100644 index 0000000..bdd3773 --- /dev/null +++ b/src/events/endpoints.rs @@ -0,0 +1,15 @@ +use std::marker::PhantomData; + +use crate::{Endpoint, Events}; + +pub const EVENTS_ENDPOINT: Endpoint = Endpoint::Get { + url: "/api/3/events", + auth: true, + _types: PhantomData, +}; + +pub const MY_EVENTS_ENDPOINT: Endpoint = Endpoint::Get { + url: "/api/3/events/my", + auth: true, + _types: PhantomData, +}; diff --git a/src/events.rs b/src/events/event.rs similarity index 93% rename from src/events.rs rename to src/events/event.rs index cd4fb40..9c35ef5 100644 --- a/src/events.rs +++ b/src/events/event.rs @@ -2,8 +2,6 @@ use crate::{Room, RoomSet, SchoolClass, SchoolClassSet, StdType, Student, Teache use chrono::{DateTime, FixedOffset}; use serde::{Deserialize, Serialize}; -/// /api/3/events GET body response -/// Get /api/3/events/my GET body response #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "PascalCase")] pub struct Events { diff --git a/src/homeworks/mod.rs b/src/events/mod.rs similarity index 52% rename from src/homeworks/mod.rs rename to src/events/mod.rs index e10cf70..2dc3044 100644 --- a/src/homeworks/mod.rs +++ b/src/events/mod.rs @@ -1,5 +1,5 @@ mod endpoints; -mod homework; +mod event; pub use endpoints::*; -pub use homework::*; +pub use event::*; diff --git a/src/homeworks/endpoints.rs b/src/homework/endpoints.rs similarity index 86% rename from src/homeworks/endpoints.rs rename to src/homework/endpoints.rs index 8df1c77..16619f7 100644 --- a/src/homeworks/endpoints.rs +++ b/src/homework/endpoints.rs @@ -11,15 +11,14 @@ pub const HOMEWORKS_COUNT_ENDPOINT: Endpoint<(), i64> = Endpoint::Get { /// ID = homework ID (String) /// finished = homework state (bool) pub const HOMEWORK_DONE_ENDPOINT: Endpoint<(), bool> = Endpoint::Get { - url: "api/3/homeworks/:id/student-done/:finished", + url: "api/3/homeworks/:id/student-done/:finished", auth: true, _types: PhantomData, }; - /// Query from and to (Datetime) pub const HOMEWORKS_ENDPOINT: Endpoint<(), HomeworkList> = Endpoint::Get { - url: "api/3/homeworks", + url: "api/3/homeworks", auth: true, _types: PhantomData, -}; \ No newline at end of file +}; diff --git a/src/homeworks/homework.rs b/src/homework/homeworks.rs similarity index 100% rename from src/homeworks/homework.rs rename to src/homework/homeworks.rs diff --git a/src/homework/mod.rs b/src/homework/mod.rs new file mode 100644 index 0000000..a461b3c --- /dev/null +++ b/src/homework/mod.rs @@ -0,0 +1,5 @@ +mod endpoints; +mod homeworks; + +pub use endpoints::*; +pub use homeworks::*; diff --git a/src/lib.rs b/src/lib.rs index 7ed1a5a..8b7b3ab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,7 +9,7 @@ mod error; mod events; mod gdpr; //komens -mod homeworks; //TDOS +mod homework; //TDOS //marking mod marks; mod payments; @@ -23,19 +23,19 @@ mod user; //TODOS //webmodules //predictor -pub use absence::{AbsenceDay, StudentAbsenceOverviewResponse, SubjectAbsence}; +pub use absence::*; pub use api_info::ApiInfo; pub use attachment::AttachmentInfo; pub use auth::*; pub use campaign::Campaign; pub use endpoints::*; pub use error::{Error, ModelState, StringArray}; -pub use events::{Event, EventTime, EventType, Events}; +pub use events::*; pub use gdpr::{ GdprCommissioner, GdprCommissioners, GdprConsent, GdprConsentRights, GdprConsentState, GdprValidity, }; -pub use homeworks::*; +pub use homework::*; pub use marks::*; pub use payments::*; pub use semester::{