From 137c975e81ec561a485200bf339eb0796842ac84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Thu, 21 May 2020 22:07:31 +0200 Subject: [PATCH] [API/Vulcan] Add getting Firebase token from server. --- .../data/api/edziennik/vulcan/login/VulcanLoginApi.kt | 10 +++++++++- .../edziennik/data/api/szkolny/SzkolnyApi.kt | 6 ++++++ .../edziennik/data/api/szkolny/SzkolnyService.kt | 3 +++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/login/VulcanLoginApi.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/login/VulcanLoginApi.kt index ec6e98dc..ec84cd05 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/login/VulcanLoginApi.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/login/VulcanLoginApi.kt @@ -15,6 +15,7 @@ import pl.szczodrzynski.edziennik.data.api.* import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.DataVulcan import pl.szczodrzynski.edziennik.data.api.edziennik.vulcan.data.api.VulcanApiUpdateSemester import pl.szczodrzynski.edziennik.data.api.models.ApiError +import pl.szczodrzynski.edziennik.data.api.szkolny.SzkolnyApi import pl.szczodrzynski.edziennik.utils.Utils.d import java.net.HttpURLConnection.HTTP_BAD_REQUEST import java.util.* @@ -202,6 +203,13 @@ class VulcanLoginApi(val data: DataVulcan, val onSuccess: () -> Unit) { val deviceNameSuffix = " - nie usuwać" + val szkolnyApi = SzkolnyApi(data.app) + val firebaseToken = szkolnyApi.runCatching({ + getFirebaseToken("vulcan") + }, onError = { + // screw errors + }) ?: data.app.config.sync.tokenVulcan + Request.builder() .url("${data.apiUrl}$VULCAN_API_ENDPOINT_CERTIFICATE") .userAgent(VULCAN_API_USER_AGENT) @@ -220,7 +228,7 @@ class VulcanLoginApi(val data: DataVulcan, val onSuccess: () -> Unit) { .addParameter("AppVersion", VULCAN_API_APP_VERSION) .addParameter("RemoteMobileAppVersion", VULCAN_API_APP_VERSION) .addParameter("RemoteMobileAppName", VULCAN_API_APP_NAME) - .addParameter("FirebaseTokenKey", data.app.config.sync.tokenVulcan) + .addParameter("FirebaseTokenKey", firebaseToken ?: "") .postJson() .allowErrorCode(HTTP_BAD_REQUEST) .callback(callback) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyApi.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyApi.kt index ae82ff8f..d2b4df70 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyApi.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyApi.kt @@ -335,4 +335,10 @@ class SzkolnyApi(val app: App) : CoroutineScope { return parseResponse(response) } + + @Throws(Exception::class) + fun getFirebaseToken(registerName: String): String { + val response = api.firebaseToken(registerName).execute() + return parseResponse(response) + } } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyService.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyService.kt index bce3aef0..401d8886 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyService.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/SzkolnyService.kt @@ -35,4 +35,7 @@ interface SzkolnyService { @GET("appLogin/platforms/{registerName}") fun appLoginPlatforms(@Path("registerName") registerName: String): Call>> + + @GET("firebase/token/{registerName}") + fun firebaseToken(@Path("registerName") registerName: String): Call> }