From e6dec4c6c0a0f1a1412e4514d2c0f82e43524bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Mon, 29 Mar 2021 20:15:14 +0200 Subject: [PATCH] [Api] Move FSLogin realms URL to GitHub sites. --- .../edziennik/data/api/szkolny/SzkolnyApi.kt | 6 ++++-- .../data/api/szkolny/SzkolnyService.kt | 4 ++-- .../interceptor/ApiCacheInterceptor.kt | 19 ++++++++++++------- 3 files changed, 18 insertions(+), 11 deletions(-) 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 20da6952..95d61224 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 @@ -367,8 +367,10 @@ class SzkolnyApi(val app: App) : CoroutineScope { @Throws(Exception::class) fun getRealms(registerName: String): List { val response = api.fsLoginRealms(registerName).execute() - - return parseResponse(response) + if (response.isSuccessful && response.body() != null) { + return response.body()!! + } + throw SzkolnyApiException(null) } @Throws(Exception::class) 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 3fe78910..c4198130 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 @@ -39,6 +39,6 @@ interface SzkolnyService { @GET("registerAvailability") fun registerAvailability(): Call>> - @GET("fsLogin/{registerName}") - fun fsLoginRealms(@Path("registerName") registerName: String): Call>> + @GET("https://szkolny-eu.github.io/FSLogin/realms/{registerName}.json") + fun fsLoginRealms(@Path("registerName") registerName: String): Call> } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/ApiCacheInterceptor.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/ApiCacheInterceptor.kt index 6f958ef6..ac34c6f7 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/ApiCacheInterceptor.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/ApiCacheInterceptor.kt @@ -12,25 +12,30 @@ import pl.szczodrzynski.edziennik.md5 class ApiCacheInterceptor(val app: App) : Interceptor { override fun intercept(chain: Interceptor.Chain): Response { - if (Signing.appCertificate.md5() == app.config.apiInvalidCert) { + val request = chain.request() + if (request.url().host() == "api.szkolny.eu" + && Signing.appCertificate.md5() == app.config.apiInvalidCert + ) { val response = ApiResponse( success = false, errors = listOf(ApiResponse.Error("InvalidSignature", "")) ) return Response.Builder() - .request(chain.request()) + .request(request) .protocol(Protocol.HTTP_1_1) .code(401) .message("Unauthorized") .addHeader("Content-Type", "application/json") - .body(ResponseBody.create( - MediaType.parse("application/json"), - app.gson.toJson(response) - )) + .body( + ResponseBody.create( + MediaType.parse("application/json"), + app.gson.toJson(response) + ) + ) .build() } - return chain.proceed(chain.request()) + return chain.proceed(request) } }