Compare commits
4
Commits
7b53c2db88
...
endpoints
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5430902782
|
||
|
|
1f79570c70 | ||
|
|
4ff2abd485 | ||
|
|
b4e4b03e67
|
No files matched your search
+5
-5
@@ -15,13 +15,13 @@ pub struct LoginSuccess {
|
||||
pub app_version: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)] // TODO: evaluate removing or changing debug here
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub struct LoginRequest {
|
||||
client_id: String,
|
||||
grant_type: String,
|
||||
username: String,
|
||||
password: String,
|
||||
pub client_id: String,
|
||||
pub grant_type: String,
|
||||
pub username: String,
|
||||
pub password: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::{Endpoint, HomeworkList};
|
||||
use crate::{Endpoint, Homeworks};
|
||||
use std::marker::PhantomData;
|
||||
|
||||
pub const HOMEWORKS_COUNT_ENDPOINT: Endpoint<i64, ()> = Endpoint::Get {
|
||||
@@ -16,7 +16,7 @@ pub const HOMEWORK_DONE_ENDPOINT: Endpoint<bool, ()> = Endpoint::Get {
|
||||
};
|
||||
|
||||
/// Query 'from' and 'to' (Datetime)
|
||||
pub const HOMEWORKS_ENDPOINT: Endpoint<HomeworkList, ()> = Endpoint::Get {
|
||||
pub const HOMEWORKS_ENDPOINT: Endpoint<Homeworks, ()> = Endpoint::Get {
|
||||
url: "/api/3/homeworks",
|
||||
auth: true,
|
||||
_types: PhantomData,
|
||||
|
||||
@@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct HomeworkItem {
|
||||
pub struct Homework {
|
||||
#[serde(rename = "ID")]
|
||||
pub id: String,
|
||||
pub date_start: DateTime<FixedOffset>,
|
||||
@@ -25,6 +25,6 @@ pub struct HomeworkItem {
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct HomeworkList {
|
||||
pub homeworks: Vec<HomeworkItem>,
|
||||
pub struct Homeworks {
|
||||
pub homeworks: Vec<Homework>,
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
pub use serde::{Deserialize, Serialize};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::PaymentsTeacherStudentStatus;
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassfundSummary {
|
||||
pub student_name_with_class: Option<String>,
|
||||
pub balance: f64,
|
||||
pub spent: f64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundPaymentInfo {
|
||||
pub instructions: Option<String>,
|
||||
pub bank_account: Option<String>,
|
||||
pub variable_symbol: Option<i64>,
|
||||
pub specific_symbol: i64,
|
||||
pub amount: f64,
|
||||
pub message: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundMonthly {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub monthly_balance: f64,
|
||||
pub items: Vec<ClassFundRecord>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundRecord {
|
||||
pub description: Option<String>,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub amount: f64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundSummary {
|
||||
pub student_name_with_class: Option<String>,
|
||||
pub balance: f64,
|
||||
pub spent: f64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherDocumentDetailStudent {
|
||||
pub full_name_with_class: Option<String>,
|
||||
pub amount: f64,
|
||||
pub status: Option<PaymentsTeacherStudentStatus>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherDocumentDetail {
|
||||
pub title: Option<String>,
|
||||
pub amount: f64,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub student_count: i64,
|
||||
pub students: Option<Vec<ClassFundTeacherDocumentDetailStudent>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherDocumentsItem {
|
||||
pub id: i64,
|
||||
pub title: Option<String>,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub total_amount: f64,
|
||||
pub amount_per_student: f64,
|
||||
pub student_count: i64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherDocumentsMonthly {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub monthly_balance: f64,
|
||||
pub items: Vec<ClassFundTeacherDocumentsItem>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherStudentsItem {
|
||||
pub variable_symbol: i64,
|
||||
pub name: Option<String>,
|
||||
pub registration_number: Option<i64>,
|
||||
pub balance: f64,
|
||||
pub status: PaymentsTeacherStudentStatus,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherSummaryClass {
|
||||
pub abbrev: Option<String>,
|
||||
pub class_id: Option<String>,
|
||||
pub balance: f64,
|
||||
pub amount_to_pay: f64,
|
||||
pub debtors: i64,
|
||||
pub spent: f64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherSummary {
|
||||
pub teacher_name: Option<String>,
|
||||
pub allowed_classes: Option<Vec<ClassFundTeacherSummaryClass>>,
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum PaymentsTeacherStudentStatus {
|
||||
Active,
|
||||
Canceled,
|
||||
}
|
||||
@@ -43,8 +43,8 @@ pub const REGULAR_PAYMENT_DETAIL_ENDPOINT: Endpoint<RegularPaymentDetail, ()> =
|
||||
};
|
||||
|
||||
pub const CLASS_FUND_TEACHER_DOCUMENT_DETAIL_ENDPOINT: Endpoint<
|
||||
(),
|
||||
ClassFundTeacherDocumentDetail,
|
||||
(),
|
||||
> = Endpoint::Get {
|
||||
url: "/api/3/payments/classfund/teacher/document/detail/{documentId}",
|
||||
auth: true,
|
||||
@@ -65,8 +65,8 @@ pub const CLASS_FUND_TEACHER_STUDENTS_ENDPOINT: Endpoint<Vec<ClassFundTeacherStu
|
||||
};
|
||||
|
||||
pub const CLASS_FUND_TEACHER_DOCUMENTS_ENDPOINT: Endpoint<
|
||||
(),
|
||||
Vec<ClassFundTeacherDocumentsMonthly>,
|
||||
(),
|
||||
> = Endpoint::Get {
|
||||
url: "/api/3/payments/classfund/teacher/documents/{classId}",
|
||||
auth: true,
|
||||
@@ -88,8 +88,8 @@ pub const REGULAR_PRESCRIPTION_DETAIL_ENDPOINT: Endpoint<RegularPrescriptionDeta
|
||||
};
|
||||
|
||||
pub const REGULAR_PRESCRIPTION_STUDENT_DETAIL_ENDPOINT: Endpoint<
|
||||
(),
|
||||
RegularPrescriptionStudentDetail,
|
||||
(),
|
||||
> = Endpoint::Get {
|
||||
url: "/api/3/payments/regularpayments/teacher/prescriptions/{prescriptionId}/students/{studentId}",
|
||||
auth: true,
|
||||
|
||||
+6
-2
@@ -1,5 +1,9 @@
|
||||
mod class_fund;
|
||||
mod common;
|
||||
mod endpoints;
|
||||
mod payments;
|
||||
mod regular_payments;
|
||||
|
||||
pub use class_fund::*;
|
||||
pub use common::*;
|
||||
pub use endpoints::*;
|
||||
pub use payments::*;
|
||||
pub use regular_payments::*;
|
||||
@@ -1,115 +1,7 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassfundSummary {
|
||||
pub student_name_with_class: Option<String>,
|
||||
pub balance: f64,
|
||||
pub spent: f64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundPaymentInfo {
|
||||
pub instructions: Option<String>,
|
||||
pub bank_account: Option<String>,
|
||||
pub variable_symbol: Option<i64>,
|
||||
pub specific_symbol: i64,
|
||||
pub amount: f64,
|
||||
pub message: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundMonthly {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub monthly_balance: f64,
|
||||
pub items: Vec<ClassFundRecord>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundRecord {
|
||||
pub description: Option<String>,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub amount: f64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundSummary {
|
||||
pub student_name_with_class: Option<String>,
|
||||
pub balance: f64,
|
||||
pub spent: f64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherDocumentDetailStudent {
|
||||
pub full_name_with_class: Option<String>,
|
||||
pub amount: f64,
|
||||
pub status: Option<PaymentsTeacherStudentStatus>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherDocumentDetail {
|
||||
pub title: Option<String>,
|
||||
pub amount: f64,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub student_count: i64,
|
||||
pub students: Option<Vec<ClassFundTeacherDocumentDetailStudent>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherDocumentsItem {
|
||||
pub id: i64,
|
||||
pub title: Option<String>,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub total_amount: f64,
|
||||
pub amount_per_student: f64,
|
||||
pub student_count: i64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherDocumentsMonthly {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub monthly_balance: f64,
|
||||
pub items: Vec<ClassFundTeacherDocumentsItem>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherStudentsItem {
|
||||
pub variable_symbol: i64,
|
||||
pub name: Option<String>,
|
||||
pub registration_number: Option<i64>,
|
||||
pub balance: f64,
|
||||
pub status: PaymentsTeacherStudentStatus,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherSummaryClass {
|
||||
pub abbrev: Option<String>,
|
||||
pub class_id: Option<String>,
|
||||
pub balance: f64,
|
||||
pub amount_to_pay: f64,
|
||||
pub debtors: i64,
|
||||
pub spent: f64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ClassFundTeacherSummary {
|
||||
pub teacher_name: Option<String>,
|
||||
pub allowed_classes: Option<Vec<ClassFundTeacherSummaryClass>>,
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
use crate::PaymentsTeacherStudentStatus;
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
@@ -162,7 +54,7 @@ pub struct RegularPrescriptionDetail {
|
||||
pub payment_type_id: i64,
|
||||
pub payment_type_name: Option<String>,
|
||||
pub amount: f64,
|
||||
pub state: RegularPrescription,
|
||||
pub state: RegularPrescriptionState,
|
||||
pub due_date_max: DateTime<FixedOffset>,
|
||||
pub bank_account: Option<String>,
|
||||
pub specific_symbol: Option<i64>,
|
||||
@@ -224,13 +116,6 @@ pub struct RegularPrescription {
|
||||
pub students_count: i64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum PaymentsTeacherStudentStatus {
|
||||
Active,
|
||||
Canceled,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum RegularPaymentStatus {
|
||||
@@ -3,13 +3,13 @@ use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct PedagogicalMeasure {
|
||||
pub struct PedagogicalMeasures {
|
||||
pub pedagogical_measures: Vec<PedagogicalMeasure>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct PedagogicalMeasures {
|
||||
pub struct PedagogicalMeasure {
|
||||
pub school_year: String,
|
||||
pub semester: String,
|
||||
pub type_label: String,
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
mod endpoints;
|
||||
mod subject_types;
|
||||
mod subject;
|
||||
|
||||
pub use endpoints::*;
|
||||
pub use subject_types::*;
|
||||
pub use subject::*;
|
||||
@@ -1,11 +1,5 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Subjects {
|
||||
pub subjects: Vec<Subject>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Subject {
|
||||
@@ -21,3 +15,9 @@ pub struct Subject {
|
||||
pub teacher_home_phone: Option<String>,
|
||||
pub teacher_mobile_phone: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Subjects {
|
||||
pub subjects: Vec<Subject>,
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum ChangeDisplayType {
|
||||
OriginalTeacher,
|
||||
SubstituteTeacher,
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ChangeLessonInfo {
|
||||
pub class_abbrev: Option<String>,
|
||||
pub group_abbrev: Option<String>,
|
||||
pub is_class_group: Option<bool>,
|
||||
pub subject_abbrev: Option<String>,
|
||||
pub room_abbrev: Option<String>,
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct SubstitutionCycles {
|
||||
pub cycles_info: Option<Vec<DayCycleInfo>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct DayCycleInfo {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub code: Option<String>,
|
||||
pub abbrev: Option<String>,
|
||||
pub name: Option<String>,
|
||||
}
|
||||
@@ -1,5 +1,15 @@
|
||||
mod change_display_type;
|
||||
mod change_lesson_info;
|
||||
mod day_cycle_info;
|
||||
mod endpoints;
|
||||
mod substitution_change;
|
||||
mod substitution_change_type;
|
||||
mod substitutions;
|
||||
|
||||
pub use change_display_type::*;
|
||||
pub use change_lesson_info::*;
|
||||
pub use day_cycle_info::*;
|
||||
pub use endpoints::*;
|
||||
pub use substitution_change::*;
|
||||
pub use substitution_change_type::*;
|
||||
pub use substitutions::*;
|
||||
@@ -0,0 +1,17 @@
|
||||
use crate::{AtomType, ChangeDisplayType, ChangeLessonInfo, Subject, SubstitutionChangeType};
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct SubstitutionChange {
|
||||
pub change_subject: Option<Subject>,
|
||||
pub day: DateTime<FixedOffset>,
|
||||
pub hours: String,
|
||||
pub change_type: SubstitutionChangeType,
|
||||
pub description: String,
|
||||
pub time: String,
|
||||
pub change_lesson_info: Option<ChangeLessonInfo>,
|
||||
pub change_display_type: Option<ChangeDisplayType>,
|
||||
pub atom_type: Option<AtomType>,
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum SubstitutionChangeType {
|
||||
Absence,
|
||||
Added,
|
||||
Canceled,
|
||||
NoChange,
|
||||
Removed,
|
||||
RoomChanged,
|
||||
Substitution,
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
use crate::{AtomType, Subject};
|
||||
use crate::SubstitutionChange;
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
@@ -9,61 +9,3 @@ pub struct Substitutions {
|
||||
pub to: DateTime<FixedOffset>,
|
||||
pub changes: Vec<SubstitutionChange>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct SubstitutionChange {
|
||||
pub change_subject: Option<Subject>,
|
||||
pub day: DateTime<FixedOffset>,
|
||||
pub hours: String,
|
||||
pub change_type: SubstitutionChangeType,
|
||||
pub description: String,
|
||||
pub time: String,
|
||||
pub change_lesson_info: Option<ChangeLessonInfo>,
|
||||
pub change_display_type: Option<ChangeDisplayType>,
|
||||
pub atom_type: Option<AtomType>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum SubstitutionChangeType {
|
||||
Absence,
|
||||
Added,
|
||||
Canceled,
|
||||
NoChange,
|
||||
Removed,
|
||||
RoomChanged,
|
||||
Substitution,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum ChangeDisplayType {
|
||||
OriginalTeacher,
|
||||
SubstituteTeacher,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct ChangeLessonInfo {
|
||||
class_abbrev: Option<String>,
|
||||
group_abbrev: Option<String>,
|
||||
is_class_group: Option<bool>,
|
||||
subject_abbrev: Option<String>,
|
||||
room_abbrev: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct SubstitutionCycles {
|
||||
pub cycles_info: Option<Vec<DayCycleInfo>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct DayCycleInfo {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub code: Option<String>,
|
||||
pub abbrev: Option<String>,
|
||||
pub name: Option<String>,
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
mod endpoints;
|
||||
mod teaching;
|
||||
mod teaching_theme;
|
||||
|
||||
pub use endpoints::*;
|
||||
pub use teaching::*;
|
||||
pub use teaching_theme::*;
|
||||
@@ -1,5 +1,4 @@
|
||||
use crate::Subject;
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use crate::{Subject, TeachingTheme};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
@@ -8,31 +7,3 @@ pub struct Teaching {
|
||||
pub subject: Subject,
|
||||
pub themes: Vec<TeachingTheme>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct TeachingTheme {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub theme: String,
|
||||
pub note: String,
|
||||
pub lesson_label: String,
|
||||
pub hour_caption: Option<String>,
|
||||
pub start: Option<u16>,
|
||||
pub duration: Option<u16>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Lesson {
|
||||
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: Option<String>,
|
||||
pub teacher_web: Option<String>,
|
||||
pub teacher_school_phone: Option<String>,
|
||||
pub teacher_home_phone: Option<String>,
|
||||
pub teacher_mobile_phone: Option<String>,
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct TeachingTheme {
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub theme: String,
|
||||
pub note: String,
|
||||
pub lesson_label: String,
|
||||
pub hour_caption: Option<String>,
|
||||
pub start: Option<u16>,
|
||||
pub duration: Option<u16>,
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::TimetableChange;
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AssistanceAtom {
|
||||
pub hour_id: i64,
|
||||
pub start: i64,
|
||||
pub duration: i64,
|
||||
pub class_id: Option<String>,
|
||||
pub group_id: Option<String>,
|
||||
pub subject_id: Option<String>,
|
||||
pub teacher_id: Option<String>,
|
||||
pub room_id: Option<String>,
|
||||
pub student_id: Option<String>,
|
||||
pub change: Option<TimetableChange>,
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Assistant {
|
||||
pub id: String,
|
||||
pub is_present: bool,
|
||||
pub student_id: String,
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{Assistant, HomeworkInfo, LessonRelease, PlannedClassification, TimetableChange};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Atom {
|
||||
pub hour_id: i64,
|
||||
pub group_ids: Vec<String>,
|
||||
pub subject_id: Option<String>,
|
||||
pub teacher_id: Option<String>,
|
||||
pub room_id: Option<String>,
|
||||
pub is_last_room_lesson: bool,
|
||||
pub cycle_ids: Vec<String>,
|
||||
pub homeworks: Vec<HomeworkInfo>,
|
||||
pub homework_ids: Vec<String>,
|
||||
pub change: Option<TimetableChange>,
|
||||
pub theme: Option<String>,
|
||||
pub assistants: Vec<Assistant>,
|
||||
pub notice: Option<String>,
|
||||
#[serde(rename = "PlannedClasification")]
|
||||
pub planned_classification: Option<PlannedClassification>,
|
||||
pub week_theme: Option<String>,
|
||||
pub lesson_release: LessonRelease,
|
||||
pub start: Option<i64>,
|
||||
pub duration: Option<i64>,
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum AtomType {
|
||||
Hour,
|
||||
Pause,
|
||||
TimeBlock,
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum Changetype {
|
||||
Absence,
|
||||
Added,
|
||||
Canceled,
|
||||
NoChange,
|
||||
Removed,
|
||||
RoomChanged,
|
||||
Substitution,
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{AssistanceAtom, Atom};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Day {
|
||||
pub atoms: Vec<Atom>,
|
||||
pub day_of_week: i64,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub day_description: String,
|
||||
pub day_type: DateTime<FixedOffset>,
|
||||
pub assistance_atoms: Vec<AssistanceAtom>,
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
use crate::{Endpoint, Timetable};
|
||||
use std::marker::PhantomData;
|
||||
|
||||
pub const PERNAMENT_TIMETABLE_ENDPOINT: Endpoint<Timetable, ()> = Endpoint::Get {
|
||||
pub const PERMAMENT_TIMETABLE_ENDPOINT: Endpoint<Timetable, ()> = Endpoint::Get {
|
||||
url: "/api/3/timetable/permanent",
|
||||
auth: true,
|
||||
_types: PhantomData,
|
||||
};
|
||||
|
||||
pub const PERNAMENT_TIMETABLE_CLASS_ENDPOINT: Endpoint<Timetable, ()> = Endpoint::Get {
|
||||
pub const PERMAMENT_TIMETABLE_CLASS_ENDPOINT: Endpoint<Timetable, ()> = Endpoint::Get {
|
||||
url: "/api/3/timetable/permanent/class/{classId}",
|
||||
auth: true,
|
||||
_types: PhantomData,
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct HomeworkInfo {
|
||||
pub id: String,
|
||||
pub text: String,
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Hour {
|
||||
pub id: i64,
|
||||
pub caption: String,
|
||||
pub begin_time: String,
|
||||
pub end_time: String,
|
||||
pub start: Option<i64>,
|
||||
pub duration: Option<i64>,
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum LessonRelease {
|
||||
NoChange,
|
||||
Released,
|
||||
}
|
||||
@@ -1,5 +1,29 @@
|
||||
mod assistance_atom;
|
||||
mod assistant;
|
||||
mod atom;
|
||||
mod atom_type;
|
||||
mod change_type;
|
||||
mod day;
|
||||
mod endpoints;
|
||||
mod homework_info;
|
||||
mod hour;
|
||||
mod lesson_release;
|
||||
mod planned_classification;
|
||||
mod timetable;
|
||||
mod timetable_change;
|
||||
mod timetable_group;
|
||||
|
||||
pub use assistance_atom::*;
|
||||
pub use assistant::*;
|
||||
pub use atom::*;
|
||||
pub use atom_type::*;
|
||||
pub use change_type::*;
|
||||
pub use day::*;
|
||||
pub use endpoints::*;
|
||||
pub use homework_info::*;
|
||||
pub use hour::*;
|
||||
pub use lesson_release::*;
|
||||
pub use planned_classification::*;
|
||||
pub use timetable::*;
|
||||
pub use timetable_change::*;
|
||||
pub use timetable_group::*;
|
||||
@@ -0,0 +1,7 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct PlannedClassification {
|
||||
pub description: Option<String>,
|
||||
}
|
||||
+1
-141
@@ -1,5 +1,4 @@
|
||||
use crate::StdType;
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use crate::{Day, Group, Hour, StdType};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
@@ -15,142 +14,3 @@ pub struct Timetable {
|
||||
pub cycles: Vec<StdType>,
|
||||
pub students: Vec<StdType>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct TimetableChange {
|
||||
pub day: DateTime<FixedOffset>,
|
||||
pub hours: String,
|
||||
pub changetype: Changetype,
|
||||
pub description: String,
|
||||
pub time: String,
|
||||
pub change_subject: Option<StdType>,
|
||||
pub type_abbrev: Option<String>,
|
||||
pub type_name: Option<String>,
|
||||
pub atom_type: Option<AtomType>,
|
||||
pub start: Option<i64>,
|
||||
pub duration: Option<i64>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum Changetype {
|
||||
Absence,
|
||||
Added,
|
||||
Canceled,
|
||||
NoChange,
|
||||
Removed,
|
||||
RoomChanged,
|
||||
Substitution,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum AtomType {
|
||||
Hour,
|
||||
Pause,
|
||||
TimeBlock,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct PlannedClassification {
|
||||
pub description: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct HomeworkInfo {
|
||||
pub id: String,
|
||||
pub text: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Group {
|
||||
pub class_id: Option<String>,
|
||||
pub id: String,
|
||||
pub abbre: Option<String>,
|
||||
pub name: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Day {
|
||||
pub atoms: Vec<Atom>,
|
||||
pub day_of_week: i64,
|
||||
pub date: DateTime<FixedOffset>,
|
||||
pub day_description: String,
|
||||
pub day_type: DateTime<FixedOffset>,
|
||||
pub assistance_atoms: Vec<AssistanceAtom>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Atom {
|
||||
pub hour_id: i64,
|
||||
pub group_ids: Vec<String>,
|
||||
pub subject_id: Option<String>,
|
||||
pub teacher_id: Option<String>,
|
||||
pub room_id: Option<String>,
|
||||
pub is_last_room_lesson: bool,
|
||||
pub cycle_ids: Vec<String>,
|
||||
pub homeworks: Vec<HomeworkInfo>,
|
||||
pub homework_ids: Vec<String>,
|
||||
pub change: Option<TimetableChange>,
|
||||
pub theme: Option<String>,
|
||||
pub assistants: Vec<Assistant>,
|
||||
pub notice: Option<String>,
|
||||
pub planned_clasification: Option<PlannedClasification>,
|
||||
pub week_theme: Option<String>,
|
||||
pub lesson_release: LessonRelease,
|
||||
pub start: Option<i64>,
|
||||
pub duration: Option<i64>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub enum LessonRelease {
|
||||
NoChange,
|
||||
Released,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Assistant {
|
||||
pub id: String,
|
||||
pub is_present: bool,
|
||||
pub student_id: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct AssistanceAtom {
|
||||
pub hour_id: i64,
|
||||
pub start: i64,
|
||||
pub duration: i64,
|
||||
pub class_id: Option<String>,
|
||||
pub group_id: Option<String>,
|
||||
pub subject_id: Option<String>,
|
||||
pub teacher_id: Option<String>,
|
||||
pub room_id: Option<String>,
|
||||
pub student_id: Option<String>,
|
||||
pub change: Option<TimetableChange>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct PlannedClasification {
|
||||
pub description: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Hour {
|
||||
pub id: i64,
|
||||
pub caption: String,
|
||||
pub begin_time: String,
|
||||
pub end_time: String,
|
||||
pub start: Option<i64>,
|
||||
pub duration: Option<i64>,
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
use chrono::{DateTime, FixedOffset};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{AtomType, Changetype, StdType};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct TimetableChange {
|
||||
pub day: DateTime<FixedOffset>,
|
||||
pub hours: String,
|
||||
pub changetype: Changetype,
|
||||
pub description: String,
|
||||
pub time: String,
|
||||
pub change_subject: Option<StdType>,
|
||||
pub type_abbrev: Option<String>,
|
||||
pub type_name: Option<String>,
|
||||
pub atom_type: Option<AtomType>,
|
||||
pub start: Option<i64>,
|
||||
pub duration: Option<i64>,
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct Group {
|
||||
pub class_id: Option<String>,
|
||||
pub id: String,
|
||||
pub abbre: Option<String>,
|
||||
pub name: Option<String>,
|
||||
}
|
||||
Reference in new issue
Block a user