From 7b2e408efc5464244aed5314c95f08baed65f6dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Sun, 19 Jan 2020 22:17:57 +0100 Subject: [PATCH] [Sync] Make sync not possible for archived profiles. Translate some error codes. --- .../edziennik/data/api/Errors.kt | 1 + .../data/api/edziennik/EdziennikTask.kt | 5 +++ app/src/main/res/values/errors.xml | 44 ++++++++++--------- 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/Errors.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/Errors.kt index 4941ade6..7ca226d3 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/Errors.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/Errors.kt @@ -51,6 +51,7 @@ const val ERROR_REQUEST_FAILURE_SSL_ERROR = 63 const val ERROR_RESPONSE_EMPTY = 100 const val ERROR_LOGIN_DATA_MISSING = 101 const val ERROR_PROFILE_MISSING = 105 +const val ERROR_PROFILE_ARCHIVED = 106 const val ERROR_INVALID_LOGIN_MODE = 110 const val ERROR_LOGIN_METHOD_NOT_SATISFIED = 111 const val ERROR_NOT_IMPLEMENTED = 112 diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt index a485f582..319479cb 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/EdziennikTask.kt @@ -16,6 +16,7 @@ import pl.szczodrzynski.edziennik.data.api.edziennik.template.Template import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.Vulcan import pl.szczodrzynski.edziennik.data.api.interfaces.EdziennikCallback import pl.szczodrzynski.edziennik.data.api.interfaces.EdziennikInterface +import pl.szczodrzynski.edziennik.data.api.models.ApiError import pl.szczodrzynski.edziennik.data.api.task.IApiTask import pl.szczodrzynski.edziennik.data.db.entity.LoginStore import pl.szczodrzynski.edziennik.data.db.entity.Message @@ -62,6 +63,10 @@ open class EdziennikTask(override val profileId: Int, val request: Any) : IApiTa private var edziennikInterface: EdziennikInterface? = null internal fun run(app: App, taskCallback: EdziennikCallback) { + if (profile?.archived == true) { + taskCallback.onError(ApiError(TAG, ERROR_PROFILE_ARCHIVED)) + return + } edziennikInterface = when (loginStore.type) { LOGIN_TYPE_LIBRUS -> Librus(app, profile, loginStore, taskCallback) LOGIN_TYPE_MOBIDZIENNIK -> Mobidziennik(app, profile, loginStore, taskCallback) diff --git a/app/src/main/res/values/errors.xml b/app/src/main/res/values/errors.xml index a804223f..7aeabb87 100644 --- a/app/src/main/res/values/errors.xml +++ b/app/src/main/res/values/errors.xml @@ -25,6 +25,7 @@ ERROR_LOGIN_DATA_MISSING ERROR_LOGIN_DATA_INVALID ERROR_PROFILE_MISSING + ERROR_PROFILE_ARCHIVED ERROR_INVALID_LOGIN_MODE ERROR_LOGIN_METHOD_NOT_SATISFIED ERROR_NOT_IMPLEMENTED @@ -190,6 +191,7 @@ Dane logowania niekompletne Nieprawidłowe dane logowania Profil nie został ustawiony + Profil jest archiwalny - synchronizacja profilu z poprzedniego roku szkolnego nie jest możliwa Nieprawidłowy sposób logowania Nie można wywołać metody logowania Nie zaimplementowano @@ -283,26 +285,26 @@ Vulcan: błąd żądania, zgłoś błąd Vulcan: inny błąd, wyślij zgłoszenie - ERROR_LOGIN_IDZIENNIK_WEB_INVALID_LOGIN - ERROR_LOGIN_IDZIENNIK_WEB_INVALID_SCHOOL_NAME - ERROR_LOGIN_IDZIENNIK_WEB_PASSWORD_CHANGE_NEEDED - ERROR_LOGIN_IDZIENNIK_WEB_MAINTENANCE - ERROR_LOGIN_IDZIENNIK_WEB_SERVER_ERROR - ERROR_LOGIN_IDZIENNIK_WEB_OTHER - ERROR_LOGIN_IDZIENNIK_WEB_API_NO_ACCESS - ERROR_LOGIN_IDZIENNIK_WEB_NO_SESSION - ERROR_LOGIN_IDZIENNIK_WEB_NO_AUTH - ERROR_LOGIN_IDZIENNIK_WEB_NO_BEARER - ERROR_IDZIENNIK_WEB_ACCESS_DENIED - ERROR_IDZIENNIK_WEB_OTHER - ERROR_IDZIENNIK_WEB_MAINTENANCE - ERROR_IDZIENNIK_WEB_SERVER_ERROR - ERROR_IDZIENNIK_WEB_PASSWORD_CHANGE_NEEDED - ERROR_LOGIN_IDZIENNIK_FIRST_NO_SCHOOL_YEAR - ERROR_IDZIENNIK_WEB_REQUEST_NO_DATA - ERROR_IDZIENNIK_API_ACCESS_DENIED - ERROR_IDZIENNIK_API_OTHER - ERROR_IDZIENNIK_API_NO_REGISTER + Nieprawidłowe dane logowania + Nieprawidłowa nazwa szkoły + iDziennik: wymagana zmiana hasła. Zaloguj się na stronie iDziennika, by dokonać zmiany hasła. + Chwilowa przerwa techniczna iDziennika, lub inny problem z serwerem + Chwilowa przerwa techniczna iDziennika, lub inny problem z serwerem (serwer zwrócił błąd) + iDziennik: inny błąd logowania + iDziennik: brak dostępu do API + iDziennik: nie znaleziono sesji + iDziennik: nie znaleziono tokenu autoryzacji + iDziennik: nie znaleziono tokenu API + iDziennik: brak dostępu. Zaloguj się ponownie. + iDziennik: inny błąd synchronizacji + Chwilowa przerwa techniczna iDziennika, lub inny problem z serwerem + Chwilowa przerwa techniczna iDziennika, lub inny problem z serwerem (serwer zwrócił błąd) + iDziennik: wymagana zmiana hasła. Zaloguj się na stronie iDziennika, by dokonać zmiany hasła. + iDziennik: nie znaleziono numeru roku szkolnego. Uczeń może nie być aktywny w aktualnym roku szkolnym. + iDziennik: serwer nie zwrócił żadnych danych + Brak dostępu do API iDziennika + Inny błąd API iDziennika + iDziennik: nie znaleziono ID dziennika. Zgłoś błąd programiście. Twoje konto nie ma uprawnień do wysyłania wiadomości (bądź wystąpił inny błąd serwera iDziennika) Błędny email lub hasło @@ -314,7 +316,7 @@ ERROR_TEMPLATE_WEB_OTHER - EXCEPTION_API_TASK + Błąd synchronizacji. Upewnij się, że masz połączenie z internetem, a następnie zgłoś błąd. EXCEPTION_LOGIN_LIBRUS_API_TOKEN EXCEPTION_LOGIN_LIBRUS_PORTAL_TOKEN EXCEPTION_LIBRUS_PORTAL_SYNERGIA_TOKEN