diff --git a/dependencies.gradle b/dependencies.gradle index e0d8d264..de849abe 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -30,11 +30,12 @@ ext.androidSupport = [ ] ext.other = [ - kotlinStdlib : "org.jetbrains.kotlin:kotlin-stdlib-common:$versions.kotlin", + kotlinStdlib : "org.jetbrains.kotlin:kotlin-stdlib-common:$versions.kotlin", retrofit : "com.squareup.retrofit2:retrofit:$versions.retrofit", gsonConverter : "com.squareup.retrofit2:converter-gson:$versions.retrofit", jacksonConverter : "com.squareup.retrofit2:converter-jackson:$versions.retrofit", jacksonKotlin : "com.fasterxml.jackson.module:jackson-module-kotlin:$versions.jackson", + okhttpLogging : "com.squareup.okhttp3:logging-interceptor:$versions.okhttp", ] ext.testing = [ diff --git a/subsonic-api/build.gradle b/subsonic-api/build.gradle index eea7105f..1bdb172b 100644 --- a/subsonic-api/build.gradle +++ b/subsonic-api/build.gradle @@ -12,6 +12,7 @@ dependencies { compile other.retrofit compile other.jacksonConverter compile other.jacksonKotlin + compile other.okhttpLogging testCompile testing.junit testCompile testing.kotlinJunit diff --git a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPI.kt b/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPI.kt index 9f22e81c..94a0fece 100644 --- a/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPI.kt +++ b/subsonic-api/src/main/kotlin/org/moire/ultrasonic/api/subsonic/SubsonicAPI.kt @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.kotlin.KotlinModule import okhttp3.OkHttpClient +import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.converter.jackson.JacksonConverterFactory import java.math.BigInteger @@ -17,7 +18,8 @@ class SubsonicAPI(baseUrl: String, username: String, private val password: String, clientProtocolVersion: SubsonicAPIVersions, - clientID: String) { + clientID: String, + debug: Boolean = false) { private val okHttpClient = OkHttpClient.Builder() .addInterceptor { chain -> // Adds default request params @@ -30,6 +32,13 @@ class SubsonicAPI(baseUrl: String, .addQueryParameter("f", "json") .build() chain.proceed(originalRequest.newBuilder().url(newUrl).build()) + } + .apply { + if (debug) { + val loggingInterceptor = HttpLoggingInterceptor() + loggingInterceptor.level = HttpLoggingInterceptor.Level.BASIC + this.addInterceptor(loggingInterceptor) + } }.build() private val jacksonMapper = ObjectMapper() @@ -49,7 +58,7 @@ class SubsonicAPI(baseUrl: String, * * @return initialized API instance */ - fun getApi() = subsonicAPI + fun getApi(): SubsonicAPIDefinition = subsonicAPI private fun passwordHex() = "enc:${password.toHexBytes()}"