Skip to content

Commit

Permalink
feat: add instance_id (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
grablack committed Sep 27, 2023
1 parent e6e59a4 commit d72ccee
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import com.paypal.messages.config.modal.ModalEvents
import com.paypal.messages.errors.BaseException
import com.paypal.messages.io.Action
import com.paypal.messages.io.ActionResponse
import com.paypal.messages.io.Api
import com.paypal.messages.io.ApiResult
import com.paypal.messages.io.OnActionCompleted
import com.paypal.messages.logger.ComponentType
Expand Down Expand Up @@ -80,7 +81,6 @@ class PayPalMessageView @JvmOverloads constructor(
private var logoType: LogoType = LogoType.PRIMARY
private var alignment: Align = Align.LEFT

private var instanceId = UUID.randomUUID()

// Full Message Data
private var data: ActionResponse? = null
Expand Down Expand Up @@ -141,6 +141,7 @@ class PayPalMessageView @JvmOverloads constructor(
updateFromAttributes(typedArray)
}
config?.let { updateFromConfig(it) }
Api.sessionId = UUID.randomUUID();
updateMessageContent()
}

Expand Down Expand Up @@ -509,6 +510,8 @@ class PayPalMessageView @JvmOverloads constructor(
*/
private fun updateMessageContent() {
if (!updateInProgress) {
Api.instanceId = UUID.randomUUID();

// Call OnLoading callback and prepare view for the process
onLoading.invoke()
messageTextView.visibility = View.GONE
Expand Down Expand Up @@ -703,7 +706,9 @@ class PayPalMessageView @JvmOverloads constructor(
offerCountryCode = this.data?.meta?.offerCountryCode,
merchantCountryCode = this.data?.meta?.merchantCountryCode,
type = ComponentType.MESSAGE.toString(),
instanceId = this.instanceId.toString(),
instanceId = Api.instanceId.toString(),
originatingInstanceId = Api.originatingInstanceId.toString(),
sessionId = Api.sessionId.toString(),
events = mutableListOf(event),
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.google.gson.annotations.SerializedName
import com.paypal.messages.config.PayPalMessageOfferType
import com.paypal.messages.config.ProductGroup
import com.paypal.messages.config.modal.ModalCloseButton
import java.util.*

data class ActionResponseMetadata(
@SerializedName("credit_product_group")
Expand All @@ -28,4 +29,6 @@ data class ActionResponseMetadata(
val fdata: String,
@SerializedName("tracking_keys")
val trackingKeys: List<String>,
@SerializedName("originating_instance_id")
val originatingInstanceId: UUID
)
9 changes: 8 additions & 1 deletion library/src/main/java/com/paypal/messages/io/Api.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,16 @@ import okhttp3.RequestBody.Companion.toRequestBody
import okio.IOException
import com.paypal.messages.config.PayPalMessageOfferType as OfferType
import com.paypal.messages.config.message.PayPalMessageConfig as MessageConfig
import java.util.UUID

object Api {
private const val TAG = "Api"
private val client = OkHttpClient()
private val gson = Gson()
var environment = Environment.SANDBOX
var instanceId: UUID? = null;
var originatingInstanceId: UUID? = null;
var sessionId: UUID? = null;

object Endpoints {
private val ROOT_URLS = mapOf(
Expand All @@ -47,6 +51,8 @@ object Api {
addQueryParameter("devTouchpoint", "false")
addQueryParameter("env", environment.name.lowercase())
addQueryParameter("logo_type", config.style.logoType.name.lowercase())
addQueryParameter("instance_id", instanceId.toString())
addQueryParameter("session_id", sessionId.toString())

config.data?.amount?.let { addQueryParameter("amount", it.toString()) }
config.data?.buyerCountry?.let { addQueryParameter("buyer_country", it) }
Expand Down Expand Up @@ -86,7 +92,8 @@ object Api {

val isValidResponse = body?.content != null && body.meta != null
return if (isValidResponse) {
ApiResult.Success(body)
Api.originatingInstanceId = body.meta?.originatingInstanceId;
ApiResult.Success(body);
}
else {
ApiResult.getFailureWithDebugId(response.headers)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ data class TrackingComponent(
val type: String? = null,
@SerializedName("instance_id")
val instanceId: String? = null,
@SerializedName("originating_instance_id")
val originatingInstanceId: String? = null,
@SerializedName("session_id")
val sessionId: String? = null,
@SerializedName("events")
val events: MutableList<TrackingEvent>,

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.paypal.messages.logger

import com.google.gson.annotations.SerializedName
import com.paypal.messages.BuildConfig
import java.util.UUID

data class TrackingPayload(
// Integration Details
Expand All @@ -19,6 +20,8 @@ data class TrackingPayload(
val deviceId: String,
@SerializedName("session_id")
val sessionId: String,
@SerializedName("instance_id")
val instanceId: String = UUID.randomUUID().toString(),
@SerializedName("integration_name")
val integrationName: String,
@SerializedName("integration_type")
Expand Down

0 comments on commit d72ccee

Please sign in to comment.