more refactoring
This commit is contained in:
15 files changed
+174
-139
No files matched your search
+2
-105
@@ -1,87 +1,6 @@
|
||||
use crate::{Hour, StdType, StdTypeNullable};
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use crate::{AbsentType, StdTypeAbbrevNullable};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceOverviewResponse {
|
||||
pub percentage_threshold: f64, //TODO: cutom type (u8)
|
||||
pub absences: Vec<AbsenceDay>,
|
||||
pub absences_per_subject: Option<Vec<SubjectAbsence>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceDay {
|
||||
pub date: chrono::DateTime<FixedOffset>,
|
||||
pub unsolved: u16,
|
||||
pub ok: u16,
|
||||
pub missed: u16,
|
||||
pub late: u16,
|
||||
pub soon: u16,
|
||||
pub school: u16,
|
||||
pub distance_teaching: u16,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct SubjectAbsence {
|
||||
pub subject_name: String,
|
||||
pub lessons_count: u16,
|
||||
pub base: u16,
|
||||
pub late: u16,
|
||||
pub soon: u16,
|
||||
pub school: u16,
|
||||
pub distance_teaching: u16,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct StudentTimetableAbsenceResponse {
|
||||
pub student: Option<StdTypeNullable>,
|
||||
pub days: Vec<AbsenceDayResponse>,
|
||||
pub absent_type_options: Vec<AbsenceTypeOption>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceTypeOption {
|
||||
pub absent_type: AbsentType,
|
||||
pub absent_kind_enabled: bool,
|
||||
pub absent_kind_required: bool,
|
||||
pub absent_note_enabled: bool,
|
||||
pub next_absent_type: AbsentType,
|
||||
pub absent_kinds: Vec<StdType>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum AbsentType {
|
||||
Absent,
|
||||
AbsentLate,
|
||||
AbsentMiss,
|
||||
AbsentOk,
|
||||
AbsentSchool,
|
||||
AbsentSoon,
|
||||
DistanceTeaching,
|
||||
NoAbsent,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceSubject {
|
||||
pub id: String,
|
||||
pub abbrev: Option<String>,
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceDayResponse {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub absences: Vec<Absence>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Absence {
|
||||
@@ -94,27 +13,5 @@ pub struct Absence {
|
||||
pub absent_kind_id: Option<String>,
|
||||
pub notice: Option<String>,
|
||||
pub student_id: Option<String>,
|
||||
pub subject: Option<AbsenceSubject>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ExcuseAbsenceResponse {
|
||||
pub absences: Vec<AbsenceRecord>,
|
||||
pub hours: Vec<Hour>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceRecord {
|
||||
pub minutes: i64,
|
||||
pub absent_type: AbsentType,
|
||||
pub hour_id: Option<String>,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub start: i64,
|
||||
pub duration: i64,
|
||||
pub absent_kind_id: Option<String>,
|
||||
pub notice: Option<String>,
|
||||
pub student_id: Option<String>,
|
||||
pub apology_id: Option<String>,
|
||||
pub subject: Option<StdTypeAbbrevNullable>,
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceDay {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub unsolved: u16,
|
||||
pub ok: u16,
|
||||
pub missed: u16,
|
||||
pub late: u16,
|
||||
pub soon: u16,
|
||||
pub school: u16,
|
||||
pub distance_teaching: u16,
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
use crate::Absence;
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceDayResponse {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub absences: Vec<Absence>,
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
use crate::{AbsenceDay, SubjectAbsence};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceOverviewResponse {
|
||||
pub percentage_threshold: f64, //TODO: cutom type (u8)
|
||||
pub absences: Vec<AbsenceDay>,
|
||||
pub absences_per_subject: Option<Vec<SubjectAbsence>>,
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
use crate::AbsentType;
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceRecord {
|
||||
pub minutes: i64,
|
||||
pub absent_type: AbsentType,
|
||||
pub hour_id: Option<String>,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub start: i64,
|
||||
pub duration: i64,
|
||||
pub absent_kind_id: Option<String>,
|
||||
pub notice: Option<String>,
|
||||
pub student_id: Option<String>,
|
||||
pub apology_id: Option<String>,
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
use crate::{AbsentType, StdType};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AbsenceTypeOption {
|
||||
pub absent_type: AbsentType,
|
||||
pub absent_kind_enabled: bool,
|
||||
pub absent_kind_required: bool,
|
||||
pub absent_note_enabled: bool,
|
||||
pub next_absent_type: AbsentType,
|
||||
pub absent_kinds: Vec<StdType>,
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum AbsentType {
|
||||
Absent,
|
||||
AbsentLate,
|
||||
AbsentMiss,
|
||||
AbsentOk,
|
||||
AbsentSchool,
|
||||
AbsentSoon,
|
||||
DistanceTeaching,
|
||||
NoAbsent,
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
use crate::{AbsenceRecord, Hour};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ExcuseAbsenceResponse {
|
||||
pub absences: Vec<AbsenceRecord>,
|
||||
pub hours: Vec<Hour>,
|
||||
}
|
||||
@@ -1,5 +1,23 @@
|
||||
mod absence;
|
||||
mod absence_day;
|
||||
mod absence_day_response;
|
||||
mod absence_overview_response;
|
||||
mod absence_record;
|
||||
mod absence_type_option;
|
||||
mod absent_type;
|
||||
mod endpoints;
|
||||
mod excuse_absence_response;
|
||||
mod student_timetable_absence_response;
|
||||
mod subject_absence;
|
||||
|
||||
pub use absence::*;
|
||||
pub use absence_day::*;
|
||||
pub use absence_day_response::*;
|
||||
pub use absence_overview_response::*;
|
||||
pub use absence_record::*;
|
||||
pub use absence_type_option::*;
|
||||
pub use absent_type::*;
|
||||
pub use endpoints::*;
|
||||
pub use excuse_absence_response::*;
|
||||
pub use student_timetable_absence_response::*;
|
||||
pub use subject_absence::*;
|
||||
@@ -0,0 +1,10 @@
|
||||
use crate::{AbsenceDayResponse, AbsenceTypeOption, StdTypeNullable};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct StudentTimetableAbsenceResponse {
|
||||
pub student: Option<StdTypeNullable>,
|
||||
pub days: Vec<AbsenceDayResponse>,
|
||||
pub absent_type_options: Vec<AbsenceTypeOption>,
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct SubjectAbsence {
|
||||
pub subject_name: String,
|
||||
pub lessons_count: u16,
|
||||
pub base: u16,
|
||||
pub late: u16,
|
||||
pub soon: u16,
|
||||
pub school: u16,
|
||||
pub distance_teaching: u16,
|
||||
}
|
||||
@@ -1,13 +1,7 @@
|
||||
use crate::StdTypeNullable;
|
||||
use crate::{FinalMark, StdTypeNullable};
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct CertificateTerms {
|
||||
pub certificate_terms: Vec<CertificateTerm>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct CertificateTerm {
|
||||
@@ -30,29 +24,6 @@ pub struct CertificateTerm {
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct FinalMark {
|
||||
pub mark_date: DateTime<FixedOffset>,
|
||||
pub edit_date: DateTime<FixedOffset>,
|
||||
pub mark_text: String,
|
||||
pub subject_id: String,
|
||||
pub id: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct PedagogicalMeasure {
|
||||
pub pedagogical_measures: Vec<PedagogicalMeasure>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct PedagogicalMeasures {
|
||||
pub school_year: String,
|
||||
pub semester: String,
|
||||
pub type_label: String,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub type_id: String,
|
||||
pub text: String,
|
||||
pub actual_grade: Option<i64>,
|
||||
pub actual_grade_name: Option<String>,
|
||||
pub struct CertificateTerms {
|
||||
pub certificate_terms: Vec<CertificateTerm>,
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct FinalMark {
|
||||
pub mark_date: DateTime<FixedOffset>,
|
||||
pub edit_date: DateTime<FixedOffset>,
|
||||
pub mark_text: String,
|
||||
pub subject_id: String,
|
||||
pub id: String,
|
||||
}
|
||||
+6
-2
@@ -1,5 +1,9 @@
|
||||
mod certificate_term;
|
||||
mod endpoints;
|
||||
mod semester;
|
||||
mod final_mark;
|
||||
mod pedagogical_measure;
|
||||
|
||||
pub use certificate_term::*;
|
||||
pub use endpoints::*;
|
||||
pub use semester::*;
|
||||
pub use final_mark::*;
|
||||
pub use pedagogical_measure::*;
|
||||
@@ -0,0 +1,21 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct PedagogicalMeasure {
|
||||
pub pedagogical_measures: Vec<PedagogicalMeasure>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct PedagogicalMeasures {
|
||||
pub school_year: String,
|
||||
pub semester: String,
|
||||
pub type_label: String,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub type_id: String,
|
||||
pub text: String,
|
||||
pub actual_grade: Option<i64>,
|
||||
pub actual_grade_name: Option<String>,
|
||||
}
|
||||
Reference in new issue
Block a user