From 3e40445b32b99800a0150b898ea454a94cfe32e4 Mon Sep 17 00:00:00 2001 From: vextrixes <113197359+vextrixes@users.noreply.github.com> Date: Sun, 25 Oct 2026 11:10:01 +0100 Subject: [PATCH] added subjects --- src/lib.rs | 4 +++- src/subjects.rs | 23 +++++++++++++++++++++++ src/user.rs | 13 ++++++------- tracker.md | 2 +- 4 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 src/subjects.rs diff --git a/src/lib.rs b/src/lib.rs index ac01b41..1eb5480 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,6 +5,7 @@ mod error; mod events; mod homework; mod stdtype; +mod subjects; mod user; pub use absence::{Absence, AbsenceListItem, SubjectAbsence}; @@ -14,4 +15,5 @@ pub use error::Error; pub use events::Events; pub use homework::{Homework, HomeworkListItem}; pub use stdtype::StdType; -pub use user::{Module, User}; \ No newline at end of file +pub use user::{Module, User}; +pub use subjects::{Subject, Subjects}; \ No newline at end of file diff --git a/src/subjects.rs b/src/subjects.rs new file mode 100644 index 0000000..3decb49 --- /dev/null +++ b/src/subjects.rs @@ -0,0 +1,23 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct Subjects { + pub subjects: Vec, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct Subject { + pub subject_id: String, + pub subject_name: String, + pub subject_abbrev: String, + pub teacher_id: String, + pub teacher_name: String, + pub teacher_abbrev: String, + pub teacher_email: String, + pub teacher_web: String, + // TeacherSchoolPhone:option<>, + // TeacherHomePhone:option<>, + // TeacherMobilePhone:option<> +} diff --git a/src/user.rs b/src/user.rs index c3d2f9e..3d14a5a 100644 --- a/src/user.rs +++ b/src/user.rs @@ -4,8 +4,8 @@ use crate::StdType; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "PascalCase")] -pub struct User{ - #[serde(rename="UserUID")] +pub struct User { + #[serde(rename = "UserUID")] pub user_uid: String, pub campaign_category_code: String, pub class: StdType, @@ -15,13 +15,12 @@ pub struct User{ pub user_type: String, pub user_type_text: String, pub study_year: u8, - pub enabled_modules: Vec - //TODO: user SettingModules + pub enabled_modules: Vec, //TODO: user SettingModules } #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "PascalCase")] -pub struct Module{ +pub struct Module { pub module: String, - pub rights: Vec -} \ No newline at end of file + pub rights: Vec, +} diff --git a/tracker.md b/tracker.md index a2da4f2..7c05aae 100644 --- a/tracker.md +++ b/tracker.md @@ -10,7 +10,7 @@ - [ ] marks - [ ] measures - [ ] payments -- [ ] subjects +- [x] subjects - [ ] substitutions - [ ] themes - [ ] timetable