From 5bf8934aca1d0492bec29ce789f102ffe2f17fce Mon Sep 17 00:00:00 2001 From: Nono3551 Date: Wed, 17 Jun 2020 21:52:24 +0200 Subject: [PATCH] build parameters in request --- app/build.gradle | 2 +- .../server/client/BaseHttpRequest.kt | 34 +++++++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8e129ce..589444f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,7 +12,7 @@ android { minSdkVersion 23 targetSdkVersion 29 versionCode 1 - versionName "1.0.4" + versionName "1.0.5" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/sk/backbone/android/shared/repositories/server/client/BaseHttpRequest.kt b/app/src/main/java/sk/backbone/android/shared/repositories/server/client/BaseHttpRequest.kt index 0bf846a..bac4977 100644 --- a/app/src/main/java/sk/backbone/android/shared/repositories/server/client/BaseHttpRequest.kt +++ b/app/src/main/java/sk/backbone/android/shared/repositories/server/client/BaseHttpRequest.kt @@ -20,13 +20,27 @@ import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException abstract class BaseHttpRequest( - continuation: Continuation, - protected val requestMethod: Int, - protected val uri: Uri, - protected val body: String, - parseSuccessResponse: (JSONObject?) -> T?, - errorParser: IExceptionDescriptionProvider -): JsonRequest(requestMethod, uri.toString(), body, onSuccess(continuation, parseSuccessResponse), onError(errorParser, continuation)){ + val continuation: Continuation, + val requestMethod: Int, + val schema: String, + val serverAddress: String, + val apiVersion: String, + val endpoint: String, + val queryParameters: MutableMap?, + val body: String, + val parseSuccessResponse: (JSONObject?) -> T?, + val errorParser: IExceptionDescriptionProvider +): JsonRequest( + requestMethod, + getUri(schema, serverAddress, apiVersion, endpoint, queryParameters).toString(), + body, + onSuccess(continuation, parseSuccessResponse), + onError(errorParser, continuation)){ + + val uri by lazy { + return@lazy getUri(schema, serverAddress, apiVersion, endpoint, queryParameters) + } + init { retryPolicy = DefaultRetryPolicy( 60000, @@ -54,14 +68,14 @@ abstract class BaseHttpRequest( } companion object { - private fun getUri(schema: String, serverAddress: String, apiVersion: String, endpoint: String, queryParameters: MutableMap?){ - val urlBuilder = Uri.Builder().scheme(schema).encodedAuthority(serverAddress).appendEncodedPath(apiVersion).appendEncodedPath(endpoint).apply { + private fun getUri(schema: String, serverAddress: String, apiVersion: String, endpoint: String, queryParameters: MutableMap?): Uri{ + return Uri.Builder().scheme(schema).encodedAuthority(serverAddress).appendEncodedPath(apiVersion).appendEncodedPath(endpoint).apply { queryParameters?.let { for (key in it.notNullValuesOnly().keys){ this.appendQueryParameter(key, queryParameters[key]) } } - } + }.build() } private fun onSuccess(continuation: Continuation, parseSuccessResponse: (JSONObject?) -> T?): Response.Listener{