add util
All checks were successful
continuous-integration/drone/push Build is passing

- add PreferenceReader interface
- add PreferenceWriter interface
- add lazy singleton ServicesFactory
- add retrofit dependencies into app module
This commit is contained in:
Raffaele Mignone 2019-11-28 12:08:37 +01:00
parent 3344ea7400
commit 8dae517943
Signed by: norangebit
GPG Key ID: F5255658CB220573
4 changed files with 77 additions and 0 deletions

View File

@ -24,6 +24,10 @@ android {
}
dependencies {
// retrofit
implementation "com.squareup.retrofit2:retrofit:2.6.2"
implementation "com.squareup.retrofit2:converter-gson:2.6.2"
implementation project(':wrapper')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0'

View File

@ -0,0 +1,7 @@
package it.unisannio.ding.ids.wedroid.app.util;
public interface PreferenceReader {
String getBaseUrl();
String getUserId();
String getToken();
}

View File

@ -0,0 +1,7 @@
package it.unisannio.ding.ids.wedroid.app.util;
public interface PreferenceWriter {
void setBaseUrl(String baseUrl);
void setUserId(String userId);
void setToken(String token);
}

View File

@ -0,0 +1,59 @@
package it.unisannio.ding.ids.wedroid.app.util
import it.unisannio.ding.ids.wedroid.wrapper.api.*
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
object ServicesFactory {
private val retrofit: Retrofit
private lateinit var reader: PreferenceReader //TODO
init {
val httpClient = OkHttpClient.Builder()
.addInterceptor {
val request = it.request().newBuilder()
.addHeader("Authorization", "Bearer ${reader.token}")
.addHeader("Accept", "application/json")
.addHeader("Content-type", "application/json")
.build()
it.proceed(request)
}.build()
retrofit = Retrofit.Builder()
.baseUrl(reader.baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.client(httpClient)
.build()
}
val boardService by lazy {
retrofit.create(BoardService::class.java)
}
val cardCommentService by lazy {
retrofit.create(CardCommentService::class.java)
}
val cardService by lazy {
retrofit.create(CardService::class.java)
}
val checklistService by lazy {
retrofit.create(ChecklistService::class.java)
}
val listService by lazy {
retrofit.create(ListService::class.java)
}
val swimlanesService by lazy {
retrofit.create(SwimlanesService::class.java)
}
val userService by lazy {
retrofit.create(UserService::class.java)
}
}