Skip to content

Commit

Permalink
Merge pull request #1811 from embrace-io/add-endpoint
Browse files Browse the repository at this point in the history
Add endpoint for attachment
  • Loading branch information
fractalwrench authored Jan 13, 2025
2 parents 956c6bd + de1fe3b commit a2c17ed
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,8 @@ internal class EmbraceUrl(val url: URL) {
}

fun endpoint(): Endpoint {
return when (url.path.substringAfterLast("/")) {
Endpoint.LOGS.path -> Endpoint.LOGS
Endpoint.SESSIONS.path -> Endpoint.SESSIONS
Endpoint.CONFIG.path -> Endpoint.CONFIG
else -> Endpoint.UNKNOWN
}
val endpoints = Endpoint.values().associateBy { it.path }
return endpoints[url.path.substringAfterLast("/")] ?: Endpoint.UNKNOWN
}

override fun toString(): String {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ enum class Endpoint(
LOGS("logs", "v2"),
SESSIONS("spans", "v2"),
CONFIG("config", "v2"),
ATTACHMENT("attachment", "v2"),
UNKNOWN("unknown", "v1"),
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package io.embrace.android.embracesdk.testframework.server
import io.embrace.android.embracesdk.assertions.getSessionId
import io.embrace.android.embracesdk.fakes.TestPlatformSerializer
import io.embrace.android.embracesdk.internal.TypeUtils
import io.embrace.android.embracesdk.internal.comms.api.Endpoint
import io.embrace.android.embracesdk.internal.config.remote.RemoteConfig
import io.embrace.android.embracesdk.internal.delivery.debug.DeliveryTracer
import io.embrace.android.embracesdk.internal.payload.Envelope
Expand All @@ -28,15 +29,9 @@ import org.junit.Assert.assertNotNull
*/
internal class FakeApiServer(
private val remoteConfig: RemoteConfig,
private val deliveryTracer: DeliveryTracer
private val deliveryTracer: DeliveryTracer,
) : Dispatcher() {

private enum class Endpoint {
LOGS,
SESSIONS,
CONFIG
}

private val serializer by threadLocal { TestPlatformSerializer() }
private val sessionRequests = CopyOnWriteArrayList<Envelope<SessionPayload>>()
private val logRequests = CopyOnWriteArrayList<Envelope<LogPayload>>()
Expand Down Expand Up @@ -66,6 +61,7 @@ internal class FakeApiServer(

// IMPORTANT NOTE: this response is not used until the SDK next starts!
Endpoint.CONFIG -> handleConfigRequest(request)
else -> error("Unsupported endpoint $endpoint")
}
}

Expand Down Expand Up @@ -95,7 +91,10 @@ internal class FakeApiServer(
private fun handleLogRequest(endpoint: Endpoint, envelope: Envelope<*>) {
val obj = envelope as Envelope<LogPayload>
logRequests.add(obj)
deliveryTracer.onServerCompletedRequest(endpoint.name, obj.getLastLog().attributes?.findAttributeValue(LogIncubatingAttributes.LOG_RECORD_UID.key) ?: "")
deliveryTracer.onServerCompletedRequest(
endpoint.name,
obj.getLastLog().attributes?.findAttributeValue(LogIncubatingAttributes.LOG_RECORD_UID.key) ?: ""
)
}

private fun handleConfigRequest(request: RecordedRequest): MockResponse {
Expand Down

0 comments on commit a2c17ed

Please sign in to comment.