From ceb0e765086d71e7759a3d6e0b2434c3685fb669 Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Fri, 5 Nov 2021 16:38:36 +0200 Subject: [PATCH] Implement creating a Github Issue from Ivy Wallet (labels not working) --- .../java/com/ivy/wallet/network/RestClient.kt | 21 +++++++++++++++++++ .../wallet/network/service/GithubService.kt | 5 ++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/ivy/wallet/network/RestClient.kt b/app/src/main/java/com/ivy/wallet/network/RestClient.kt index d99ca5167..38cee31ee 100644 --- a/app/src/main/java/com/ivy/wallet/network/RestClient.kt +++ b/app/src/main/java/com/ivy/wallet/network/RestClient.kt @@ -12,6 +12,7 @@ import com.ivy.wallet.network.error.RestError import com.ivy.wallet.network.service.* import com.ivy.wallet.session.IvySession import com.ivy.wallet.session.NoSessionException +import okhttp3.Credentials import okhttp3.Interceptor import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor @@ -101,6 +102,26 @@ class RestClient private constructor( response }) + //Github Rest API interceptor (not the best solution) + httpClientBuilder.addInterceptor(Interceptor { chain -> + val request = chain.request() + val finalRequest = + if (request.url.toUrl().toString().startsWith(GithubService.BASE_URL)) { + val credentials = Credentials.basic( + GithubService.GITHUB_SERVICE_ACC_USERNAME, + GithubService.GITHUB_SERVICE_ACC_ACCESS_TOKEN + ) + + request.newBuilder() + .header("Authorization", credentials) + .build() + } else { + request + } + + chain.proceed(request = finalRequest) + }) + trustAllSSLCertificates(httpClientBuilder) return Retrofit.Builder() diff --git a/app/src/main/java/com/ivy/wallet/network/service/GithubService.kt b/app/src/main/java/com/ivy/wallet/network/service/GithubService.kt index 3a04af1cf..1c3d613e9 100644 --- a/app/src/main/java/com/ivy/wallet/network/service/GithubService.kt +++ b/app/src/main/java/com/ivy/wallet/network/service/GithubService.kt @@ -8,9 +8,12 @@ import retrofit2.http.POST interface GithubService { companion object { - private const val BASE_URL = "https://api.github.com" + const val BASE_URL = "https://api.github.com" const val OPEN_ISSUE_URL = "$BASE_URL/repos/ILIYANGERMANOV/ivy-wallet/issues" + const val GITHUB_SERVICE_ACC_USERNAME = "ivywallet" + const val GITHUB_SERVICE_ACC_ACCESS_TOKEN = "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" + const val LABEL_USER_REQUEST = "user request" }