diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/api/v2/librus/data/LibrusData.kt b/app/src/main/java/pl/szczodrzynski/edziennik/api/v2/librus/data/LibrusData.kt
index b5e9c245..fb67e8f9 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/api/v2/librus/data/LibrusData.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/api/v2/librus/data/LibrusData.kt
@@ -71,6 +71,10 @@ class LibrusData(val data: DataLibrus, val onSuccess: () -> Unit) {
data.startProgress(R.string.edziennik_progress_endpoint_lucky_number)
LibrusApiLuckyNumber(data) { onSuccess() }
}
+ ENDPOINT_LIBRUS_API_CLASSES -> {
+ data.startProgress(R.string.edziennik_progress_endpoint_classes)
+ LibrusApiClasses(data) { onSuccess() }
+ }
else -> onSuccess()
}
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/api/v2/librus/data/api/LibrusApiClasses.kt b/app/src/main/java/pl/szczodrzynski/edziennik/api/v2/librus/data/api/LibrusApiClasses.kt
new file mode 100644
index 00000000..31d3490b
--- /dev/null
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/api/v2/librus/data/api/LibrusApiClasses.kt
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) Kacper Ziubryniewicz 2019-10-14
+ */
+
+package pl.szczodrzynski.edziennik.api.v2.librus.data.api
+
+import pl.szczodrzynski.edziennik.*
+import pl.szczodrzynski.edziennik.api.v2.librus.DataLibrus
+import pl.szczodrzynski.edziennik.api.v2.librus.ENDPOINT_LIBRUS_API_CLASSES
+import pl.szczodrzynski.edziennik.api.v2.librus.data.LibrusApi
+import pl.szczodrzynski.edziennik.data.db.modules.teams.Team
+import pl.szczodrzynski.edziennik.utils.models.Date
+
+class LibrusApiClasses(override val data: DataLibrus,
+ val onSuccess: () -> Unit) : LibrusApi(data) {
+ companion object {
+ const val TAG = "LibrusApiClasses"
+ }
+
+ init {
+ apiGet(TAG, "Classes") { json ->
+ json.getJsonObject("Class")?.also { studentClass ->
+ val id = studentClass.getLong("Id") ?: return@also
+ val name = studentClass.getString("Number") +
+ studentClass.getString("Symbol")
+ val code = data.schoolName + ":" + name
+ val teacherId = studentClass.getJsonObject("ClassTutor")?.getLong("Id") ?: -1
+
+ val teamObject = Team(
+ profileId,
+ id,
+ name,
+ 1,
+ code,
+ teacherId
+ )
+
+ data.teamList.put(id, teamObject)
+
+ val unitId = studentClass.getJsonObject("Unit").getLong("Id")
+
+ profile?.apply {
+ dateSemester1Start = Date.fromY_m_d(studentClass.getString("BeginSchoolYear")
+ ?: return@apply)
+ dateSemester2Start = Date.fromY_m_d(studentClass.getString("EndFirstSemester")
+ ?: return@apply)
+ dateYearEnd = Date.fromY_m_d(studentClass.getString("EndSchoolYear")
+ ?: return@apply)
+ if (unitId != null) putStudentData("unitId", unitId)
+ }
+ }
+
+ data.setSyncNext(ENDPOINT_LIBRUS_API_CLASSES, 4 * DAY)
+ onSuccess()
+ }
+ }
+}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b8767b62..c73422ab 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -944,4 +944,5 @@
Pobieranie kategorii obecności...
Pobieranie ogłoszeń szkolnych...
Pierwsze logowanie
+ Pobieranie informacji o klasie...