Skip to content

Commit ee30232

Browse files
KrystianQurkuba2k2
andauthored
[API/Librus] Fix TeacherFreeDays API problems (#215)
* [Librus] Fix TeacherFreeDays API problems * [Librus] Small Teacher Free Days Bug fix & improvement * [Librus] Implementation fix * Apply suggestions from code review --------- Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
1 parent 988d7ca commit ee30232

File tree

5 files changed

+12
-1
lines changed

5 files changed

+12
-1
lines changed

app/src/main/java/pl/szczodrzynski/edziennik/data/api/Errors.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ const val ERROR_LIBRUS_MESSAGES_NOT_FOUND = 186
148148
const val ERROR_LOGIN_LIBRUS_API_INVALID_REQUEST = 187
149149
const val ERROR_LIBRUS_MESSAGES_ATTACHMENT_NOT_FOUND = 188
150150
const val ERROR_LOGIN_LIBRUS_MESSAGES_TIMEOUT = 189
151+
const val ERROR_LIBRUS_API_TEACHER_FREE_DAYS_NOT_PUBLIC = 190
151152

152153
const val ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_LOGIN = 201
153154
const val ERROR_LOGIN_MOBIDZIENNIK_WEB_OLD_PASSWORD = 202

app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/Librus.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ import pl.szczodrzynski.edziennik.data.db.enums.LoginMethod
2929
import pl.szczodrzynski.edziennik.data.db.full.AnnouncementFull
3030
import pl.szczodrzynski.edziennik.data.db.full.EventFull
3131
import pl.szczodrzynski.edziennik.data.db.full.MessageFull
32+
import pl.szczodrzynski.edziennik.ext.DAY
33+
import pl.szczodrzynski.edziennik.ext.HOUR
34+
import pl.szczodrzynski.edziennik.ext.WEEK
3235
import pl.szczodrzynski.edziennik.utils.Utils.d
3336

3437
class Librus(val app: App, val profile: Profile?, val loginStore: LoginStore, val callback: EdziennikCallback) : EdziennikInterface {
@@ -235,6 +238,11 @@ class Librus(val app: App, val profile: Profile?, val loginStore: LoginStore, va
235238
data.app.config.sync.tokenLibrusList + data.profileId
236239
data()
237240
}
241+
ERROR_LIBRUS_API_TEACHER_FREE_DAYS_NOT_PUBLIC -> {
242+
d(TAG, "Student not have access to Teacher Free Days resource")
243+
data.setSyncNext(ENDPOINT_LIBRUS_API_TEACHER_FREE_DAYS, 1 * WEEK, FeatureType.AGENDA)
244+
data()
245+
}
238246
else -> callback.onError(apiError)
239247
}
240248
}

app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/LibrusApi.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ open class LibrusApi(open val data: DataLibrus, open val lastSync: Long?) {
6969
"NoticeboardProblem" -> ERROR_LIBRUS_API_NOTICEBOARD_PROBLEM
7070
"DeviceRegistered" -> ERROR_LIBRUS_API_DEVICE_REGISTERED
7171
"Maintenance" -> ERROR_LIBRUS_API_MAINTENANCE
72+
"TeacherFreeDaysIsNotActive" -> ERROR_LIBRUS_API_TEACHER_FREE_DAYS_NOT_PUBLIC
7273
else -> ERROR_LIBRUS_API_OTHER
7374
}.let { errorCode ->
7475
if (errorCode !in ignoreErrors) {

app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/librus/data/api/LibrusApiTeacherFreeDays.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class LibrusApiTeacherFreeDays(override val data: DataLibrus,
2929
data.db.teacherAbsenceTypeDao().getAllNow(profileId).toSparseArray(data.teacherAbsenceTypes) { it.id }
3030
}
3131

32-
apiGet(TAG, "TeacherFreeDays") { json ->
32+
apiGet(TAG, "Calendars/TeacherFreeDays") { json ->
3333
val teacherAbsences = json.getJsonArray("TeacherFreeDays")?.asJsonObjectList()
3434

3535
teacherAbsences?.forEach { teacherAbsence ->

app/src/main/res/values/errors.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120
<string name="error_187" translatable="false">ERROR_LOGIN_LIBRUS_API_INVALID_REQUEST</string>
121121
<string name="error_188" translatable="false">ERROR_LIBRUS_MESSAGES_ATTACHMENT_NOT_FOUND</string>
122122
<string name="error_189" translatable="false">ERROR_LOGIN_LIBRUS_MESSAGES_TIMEOUT</string>
123+
<string name="error_190" translatable="false">ERROR_LIBRUS_API_TEACHER_FREE_DAYS_NOT_PUBLIC</string>
123124

124125
<string name="error_201" translatable="false">ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_LOGIN</string>
125126
<string name="error_202" translatable="false">ERROR_LOGIN_MOBIDZIENNIK_WEB_OLD_PASSWORD</string>

0 commit comments

Comments
 (0)