mirror of
https://github.com/szkolny-eu/szkolny-android.git
synced 2025-06-23 02:23:02 +02:00
[APIv2/Librus] Update endpoints: API/Schools, API/Events
This commit is contained in:
@ -18,6 +18,12 @@ open class LibrusApi(open val data: DataLibrus) {
|
||||
const val TAG = "LibrusApi"
|
||||
}
|
||||
|
||||
val profileId
|
||||
get() = data.profile?.id ?: -1
|
||||
|
||||
val profile
|
||||
get() = data.profile
|
||||
|
||||
fun apiGet(tag: String, endpoint: String, method: Int = GET, payload: JsonObject? = null, onSuccess: (json: JsonObject?) -> Unit) {
|
||||
|
||||
val callback = object : JsonCallbackHandler() {
|
||||
|
@ -14,13 +14,13 @@ class LibrusApiEvents(override val data: DataLibrus,
|
||||
}
|
||||
|
||||
init {
|
||||
apiGet(LibrusApiMe.TAG, "") { json ->
|
||||
/*apiGet(LibrusApiMe.TAG, "") { json ->
|
||||
|
||||
// on error
|
||||
data.error(TAG, ERROR_LIBRUS_API_, response, json)
|
||||
|
||||
data.setSyncNext(ENDPOINT_LIBRUS_API_, 2 * DAY)
|
||||
onSuccess()
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
@ -6,11 +6,11 @@ package pl.szczodrzynski.edziennik.api.v2.librus.data.api
|
||||
|
||||
import android.util.Pair
|
||||
import com.google.gson.JsonNull
|
||||
import pl.szczodrzynski.edziennik.*
|
||||
import pl.szczodrzynski.edziennik.api.v2.ENDPOINT_LIBRUS_API_SCHOOLS
|
||||
import pl.szczodrzynski.edziennik.api.v2.librus.data.DataLibrus
|
||||
import pl.szczodrzynski.edziennik.api.v2.librus.data.LibrusApi
|
||||
import pl.szczodrzynski.edziennik.getInt
|
||||
import pl.szczodrzynski.edziennik.getJsonObject
|
||||
import pl.szczodrzynski.edziennik.getString
|
||||
import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonRange
|
||||
import pl.szczodrzynski.edziennik.utils.models.Time
|
||||
import java.util.*
|
||||
|
||||
@ -26,6 +26,8 @@ class LibrusApiSchools(override val data: DataLibrus,
|
||||
val schoolId = school?.getInt("Id")
|
||||
val schoolNameLong = school?.getString("Name")
|
||||
|
||||
// create the school's short name using first letters of each long name's word
|
||||
// append the town name and save to student data
|
||||
var schoolNameShort = ""
|
||||
schoolNameLong?.split(" ")?.forEach {
|
||||
if (it.isBlank())
|
||||
@ -35,21 +37,24 @@ class LibrusApiSchools(override val data: DataLibrus,
|
||||
val schoolTown = school?.getString("Town")?.toLowerCase(Locale.getDefault())
|
||||
data.schoolName = schoolId.toString() + schoolNameShort + "_" + schoolTown
|
||||
|
||||
/*lessonRanges.clear()
|
||||
for ((index, lessonRangeEl) in school.get("LessonsRange").getAsJsonArray().withIndex()) {
|
||||
val lr = lessonRangeEl.getAsJsonObject()
|
||||
val from = lr.get("From")
|
||||
val to = lr.get("To")
|
||||
if (from != null && to != null && from !is JsonNull && to !is JsonNull) {
|
||||
lessonRanges.put(index, Pair<Time, Time>(Time.fromH_m(from!!.getAsString()), Time.fromH_m(to!!.getAsString())))
|
||||
school?.getJsonArray("LessonsRange")?.let { ranges ->
|
||||
data.lessonRanges.clear()
|
||||
ranges.forEachIndexed { index, rangeEl ->
|
||||
val range = rangeEl.asJsonObject
|
||||
val from = range.getString("From") ?: return@forEachIndexed
|
||||
val to = range.getString("To") ?: return@forEachIndexed
|
||||
data.lessonRanges.add(
|
||||
LessonRange(
|
||||
profileId,
|
||||
index,
|
||||
Time.fromH_m(from),
|
||||
Time.fromH_m(to)
|
||||
))
|
||||
}
|
||||
}
|
||||
profile.putStudentData("lessonRanges", app.gson.toJson(lessonRanges))
|
||||
// on error
|
||||
data.error(TAG, ERROR_LIBRUS_API_, response, json)
|
||||
|
||||
data.setSyncNext(ENDPOINT_LIBRUS_API_, 2 * DAY)
|
||||
onSuccess()*/
|
||||
data.setSyncNext(ENDPOINT_LIBRUS_API_SCHOOLS, 4 * DAY)
|
||||
onSuccess()
|
||||
}
|
||||
}
|
||||
}
|
@ -17,6 +17,7 @@ import pl.szczodrzynski.edziennik.data.db.modules.grades.Grade
|
||||
import pl.szczodrzynski.edziennik.data.db.modules.grades.GradeCategory
|
||||
import pl.szczodrzynski.edziennik.data.db.modules.lessons.Lesson
|
||||
import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonChange
|
||||
import pl.szczodrzynski.edziennik.data.db.modules.lessons.LessonRange
|
||||
import pl.szczodrzynski.edziennik.data.db.modules.login.LoginStore
|
||||
import pl.szczodrzynski.edziennik.data.db.modules.messages.Message
|
||||
import pl.szczodrzynski.edziennik.data.db.modules.messages.MessageRecipient
|
||||
@ -90,6 +91,7 @@ open class Data(val app: App, val profile: Profile?, val loginStore: LoginStore)
|
||||
val teacherList = LongSparseArray<Teacher>()
|
||||
val subjectList = LongSparseArray<Subject>()
|
||||
val teamList = mutableListOf<Team>()
|
||||
var lessonRanges = mutableListOf<LessonRange>()
|
||||
|
||||
var lessonsToRemove: DataRemoveModel? = null
|
||||
val lessonList = mutableListOf<Lesson>()
|
||||
@ -129,6 +131,8 @@ open class Data(val app: App, val profile: Profile?, val loginStore: LoginStore)
|
||||
db.endpointTimerDao().getAllNow(profile.id).forEach { endpointTimer ->
|
||||
endpointTimers.add(endpointTimer)
|
||||
}
|
||||
|
||||
lessonRanges = db.lessonRangeDao().getAllNow(profile.id).toMutableList()
|
||||
db.teacherDao().getAllNow(profile.id).forEach { teacher ->
|
||||
teacherList.put(teacher.id, teacher)
|
||||
}
|
||||
@ -151,6 +155,7 @@ open class Data(val app: App, val profile: Profile?, val loginStore: LoginStore)
|
||||
teacherList.clear()
|
||||
subjectList.clear()
|
||||
teamList.clear()
|
||||
lessonRanges.clear()
|
||||
lessonList.clear()
|
||||
lessonChangeList.clear()
|
||||
gradeCategoryList.clear()
|
||||
|
Reference in New Issue
Block a user