Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert api interfaces to kotlin #858

Merged
merged 9 commits into from
May 20, 2024
Prev Previous commit
Next Next commit
refactor: extract network calls into api delegate
  • Loading branch information
fractalwrench committed May 20, 2024
commit 89af0657cd49a71810b51e24b8a1db1753cae159
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@ import android.app.Application
import android.content.Context
import io.embrace.android.embracesdk.Embrace.LastRunEndState
import io.embrace.android.embracesdk.config.ConfigService
import io.embrace.android.embracesdk.config.behavior.NetworkBehavior
import io.embrace.android.embracesdk.injection.CrashModule
import io.embrace.android.embracesdk.injection.ModuleInitBootstrapper
import io.embrace.android.embracesdk.injection.embraceImplInject
import io.embrace.android.embracesdk.internal.ApkToolsConfig
import io.embrace.android.embracesdk.internal.EmbraceInternalInterface
import io.embrace.android.embracesdk.internal.IdGenerator.Companion.generateW3CTraceparent
import io.embrace.android.embracesdk.internal.Systrace.endSynchronous
import io.embrace.android.embracesdk.internal.Systrace.startSynchronous
import io.embrace.android.embracesdk.internal.api.delegate.LogsApiDelegate
Expand Down Expand Up @@ -286,16 +284,6 @@ internal class EmbraceImpl @JvmOverloads constructor(
}
}

fun getTraceIdHeader(): String {
if (configService != null && sdkCallChecker.check("get_trace_id_header")) {
return configService?.networkBehavior?.getTraceIdHeader()
?: NetworkBehavior.CONFIG_TRACE_ID_HEADER_DEFAULT_VALUE
}
return NetworkBehavior.CONFIG_TRACE_ID_HEADER_DEFAULT_VALUE
}

fun generateW3cTraceparent(): String = generateW3CTraceparent()

@JvmOverloads
fun logMessage(
type: EventType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,8 @@ internal interface NetworkRequestApi {
* You can create an instance of [EmbraceNetworkRequest] using the factory functions.
*/
fun recordNetworkRequest(networkRequest: EmbraceNetworkRequest)

fun getTraceIdHeader(): String

fun generateW3cTraceparent(): String
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package io.embrace.android.embracesdk.internal.api.delegate

import io.embrace.android.embracesdk.NetworkRequestApi
import io.embrace.android.embracesdk.config.behavior.NetworkBehavior
import io.embrace.android.embracesdk.injection.ModuleInitBootstrapper
import io.embrace.android.embracesdk.injection.embraceImplInject
import io.embrace.android.embracesdk.internal.IdGenerator
import io.embrace.android.embracesdk.network.EmbraceNetworkRequest

internal class NetworkRequestApiDelegate(
Expand All @@ -22,6 +24,16 @@ internal class NetworkRequestApiDelegate(
}
}

override fun getTraceIdHeader(): String {
if (sdkCallChecker.check("get_trace_id_header")) {
return configService?.networkBehavior?.getTraceIdHeader()
?: NetworkBehavior.CONFIG_TRACE_ID_HEADER_DEFAULT_VALUE
}
return NetworkBehavior.CONFIG_TRACE_ID_HEADER_DEFAULT_VALUE
}

override fun generateW3cTraceparent(): String = IdGenerator.generateW3CTraceparent()

private fun logNetworkRequest(request: EmbraceNetworkRequest) {
if (configService?.networkBehavior?.isUrlEnabled(request.url) == true) {
networkLoggingService?.logNetworkRequest(request)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import io.embrace.android.embracesdk.fakes.fakeModuleInitBootstrapper
import io.embrace.android.embracesdk.network.EmbraceNetworkRequest
import io.embrace.android.embracesdk.network.http.HttpMethod
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
Expand Down Expand Up @@ -52,4 +53,14 @@ internal class NetworkRequestApiDelegateTest {
assertEquals(1, orchestrator.stateChangeCount)
assertEquals(request, networkLoggingService.requests.single())
}

@Test
fun `test trace id header`() {
assertEquals("x-emb-trace-id", delegate.getTraceIdHeader())
}

@Test
fun testGenerateW3cTraceparent() {
assertNotNull(delegate.generateW3cTraceparent())
}
}