Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import java.util.UUID
* @param[issuerInformation] Holds information about card issuing institution that issued the card to the card holder.
* @param[uuid] Unique identifier of request.
*/
@Deprecated(message = "Not used.")
data class POCardTokenizationPreferredSchemeRequest @ProcessOutInternalApi constructor(
val issuerInformation: POCardIssuerInformation,
override val uuid: UUID = UUID.randomUUID()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import java.util.UUID
* @param[saveCard] Indicates whether the user has chosen to save the card for future payments.
* @param[uuid] Unique identifier of request.
*/
@Deprecated(message = "Not used.")
data class POCardTokenizationProcessingRequest(
val card: POCard,
val saveCard: Boolean,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import java.util.UUID
* @param[failure] Failure that can be inspected to decide whether the flow should continue or complete.
* @param[uuid] Unique identifier of request.
*/
@Deprecated(message = "Not used.")
data class POCardTokenizationShouldContinueRequest @ProcessOutInternalApi constructor(
val failure: ProcessOutResult.Failure,
override val uuid: UUID = UUID.randomUUID()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import java.util.UUID
* @param[failure] Failure that can be inspected to decide whether the flow should continue or complete.
* @param[uuid] Unique identifier of request.
*/
@Deprecated(message = "Not used.")
data class POCardUpdateShouldContinueRequest @ProcessOutInternalApi constructor(
val cardId: String,
val failure: ProcessOutResult.Failure,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import java.util.UUID
* @param[issuerInformation] Holds information about card issuing institution that issued the card to the card holder.
* @param[preferredScheme] Preferred scheme that will be used by default for card tokenization.
*/
@Deprecated(message = "Not used.")
data class POCardTokenizationPreferredSchemeResponse internal constructor(
override val uuid: UUID,
val issuerInformation: POCardIssuerInformation,
Expand All @@ -23,6 +24,7 @@ data class POCardTokenizationPreferredSchemeResponse internal constructor(
*
* @param[preferredScheme] Preferred scheme that will be used by default for card tokenization. Will use a primary scheme if _null_.
*/
@Deprecated(message = "Not used.")
fun POCardTokenizationPreferredSchemeRequest.toResponse(
preferredScheme: String?
) = POCardTokenizationPreferredSchemeResponse(uuid, issuerInformation, preferredScheme)
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import java.util.UUID
* @param[uuid] Unique identifier of response that must be equal to UUID of request.
* @param[result] Result of tokenized card processing.
*/
@Deprecated(message = "Not used.")
data class POCardTokenizationProcessingResponse internal constructor(
override val uuid: UUID,
val result: ProcessOutResult<POCard>
Expand All @@ -22,6 +23,7 @@ data class POCardTokenizationProcessingResponse internal constructor(
*
* @param[result] Result of tokenized card processing.
*/
@Deprecated(message = "Not used.")
fun POCardTokenizationProcessingRequest.toResponse(
result: ProcessOutResult<Any>
) = POCardTokenizationProcessingResponse(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import java.util.UUID
* @param[failure] Failure that occurred. Must be provided from [POCardTokenizationShouldContinueRequest].
* @param[shouldContinue] Boolean that indicates whether the flow should continue or complete after the [failure].
*/
@Deprecated(message = "Not used.")
data class POCardTokenizationShouldContinueResponse internal constructor(
override val uuid: UUID,
val failure: ProcessOutResult.Failure,
Expand All @@ -24,6 +25,7 @@ data class POCardTokenizationShouldContinueResponse internal constructor(
*
* @param[shouldContinue] Boolean that indicates whether the flow should continue or complete after the failure.
*/
@Deprecated(message = "Not used.")
fun POCardTokenizationShouldContinueRequest.toResponse(
shouldContinue: Boolean
) = POCardTokenizationShouldContinueResponse(uuid, failure, shouldContinue)
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import java.util.UUID
* @param[failure] Failure that occurred. Must be provided from [POCardUpdateShouldContinueRequest].
* @param[shouldContinue] Boolean that indicates whether the flow should continue or complete after the [failure].
*/
@Deprecated(message = "Not used.")
data class POCardUpdateShouldContinueResponse internal constructor(
override val uuid: UUID,
val failure: ProcessOutResult.Failure,
Expand All @@ -24,6 +25,7 @@ data class POCardUpdateShouldContinueResponse internal constructor(
*
* @param[shouldContinue] Boolean that indicates whether the flow should continue or complete after the failure.
*/
@Deprecated(message = "Not used.")
fun POCardUpdateShouldContinueRequest.toResponse(
shouldContinue: Boolean
) = POCardUpdateShouldContinueResponse(uuid, failure, shouldContinue)
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ import com.processout.sdk.R
import com.processout.sdk.api.dispatcher.POEventDispatcher
import com.processout.sdk.api.model.event.POCardTokenizationEvent
import com.processout.sdk.api.model.event.POCardTokenizationEvent.*
import com.processout.sdk.api.model.request.*
import com.processout.sdk.api.model.response.*
import com.processout.sdk.api.model.request.POCardTokenizationRequest
import com.processout.sdk.api.model.request.POContact
import com.processout.sdk.api.model.response.POCard
import com.processout.sdk.api.model.response.POCardIssuerInformation
import com.processout.sdk.api.model.response.POCardScheme
import com.processout.sdk.api.repository.POCardsRepository
import com.processout.sdk.core.POFailure.Code.Cancelled
import com.processout.sdk.core.POFailure.Code.Generic
Expand All @@ -26,12 +29,9 @@ import com.processout.sdk.ui.card.tokenization.CardTokenizationEvent.*
import com.processout.sdk.ui.card.tokenization.CardTokenizationInteractorState.*
import com.processout.sdk.ui.card.tokenization.CardTokenizationSideEffect.CardScanner
import com.processout.sdk.ui.card.tokenization.POCardTokenizationConfiguration.BillingAddressConfiguration.CollectionMode.*
import com.processout.sdk.ui.card.tokenization.delegate.CardTokenizationEligibilityRequest
import com.processout.sdk.ui.card.tokenization.delegate.CardTokenizationEligibilityResponse
import com.processout.sdk.ui.card.tokenization.delegate.POCardTokenizationEligibility
import com.processout.sdk.ui.card.tokenization.delegate.*
import com.processout.sdk.ui.card.tokenization.delegate.POCardTokenizationEligibility.Eligible
import com.processout.sdk.ui.card.tokenization.delegate.POCardTokenizationEligibility.NotEligible
import com.processout.sdk.ui.card.tokenization.delegate.POCardTokenizationState
import com.processout.sdk.ui.core.state.POAvailableValue
import com.processout.sdk.ui.shared.extension.currentAppLocale
import com.processout.sdk.ui.shared.extension.distinctUntilChangedByMultiple
Expand Down Expand Up @@ -88,10 +88,10 @@ internal class CardTokenizationInteractor(

private var issuerInformationJob: Job? = null

private var latestProcessingRequest: POCardTokenizationProcessingRequest? = null
private var latestProcessingRequest: CardTokenizationProcessingRequest? = null
private var latestEligibilityRequest: CardTokenizationEligibilityRequest? = null
private var latestPreferredSchemeRequest: POCardTokenizationPreferredSchemeRequest? = null
private var latestShouldContinueRequest: POCardTokenizationShouldContinueRequest? = null
private var latestPreferredSchemeRequest: CardTokenizationPreferredSchemeRequest? = null
private var latestShouldContinueRequest: CardTokenizationShouldContinueRequest? = null

//region Initialization

Expand Down Expand Up @@ -507,15 +507,15 @@ internal class CardTokenizationInteractor(

private fun requestPreferredScheme(issuerInformation: POCardIssuerInformation) {
interactorScope.launch {
val request = POCardTokenizationPreferredSchemeRequest(issuerInformation)
val request = CardTokenizationPreferredSchemeRequest(issuerInformation = issuerInformation)
latestPreferredSchemeRequest = request
eventDispatcher.send(request)
POLogger.info("Requested to choose preferred scheme by issuer information: %s", issuerInformation)
}
}

private fun collectPreferredScheme() {
eventDispatcher.subscribeForResponse<POCardTokenizationPreferredSchemeResponse>(
eventDispatcher.subscribeForResponse<CardTokenizationPreferredSchemeResponse>(
coroutineScope = interactorScope
) { response ->
if (response.uuid == latestPreferredSchemeRequest?.uuid) {
Expand Down Expand Up @@ -827,7 +827,7 @@ internal class CardTokenizationInteractor(
}

private suspend fun requestToProcessTokenizedCard(card: POCard) {
val request = POCardTokenizationProcessingRequest(
val request = CardTokenizationProcessingRequest(
card = card,
saveCard = _state.value.saveCardField.value.text.toBooleanStrictOrNull() ?: false
)
Expand All @@ -840,7 +840,7 @@ internal class CardTokenizationInteractor(
}

private fun handleCompletion() {
eventDispatcher.subscribeForResponse<POCardTokenizationProcessingResponse>(
eventDispatcher.subscribeForResponse<CardTokenizationProcessingResponse>(
coroutineScope = interactorScope
) { response ->
if (response.uuid == latestProcessingRequest?.uuid) {
Expand All @@ -865,15 +865,15 @@ internal class CardTokenizationInteractor(

private fun requestIfShouldContinue(failure: ProcessOutResult.Failure) {
interactorScope.launch {
val request = POCardTokenizationShouldContinueRequest(failure)
val request = CardTokenizationShouldContinueRequest(failure = failure)
latestShouldContinueRequest = request
eventDispatcher.send(request)
POLogger.info("Requested to decide whether the flow should continue or complete after the failure: %s", failure)
}
}

private fun shouldContinueOnFailure() {
eventDispatcher.subscribeForResponse<POCardTokenizationShouldContinueResponse>(
eventDispatcher.subscribeForResponse<CardTokenizationShouldContinueResponse>(
coroutineScope = interactorScope
) { response ->
if (response.uuid == latestShouldContinueRequest?.uuid) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,9 @@ import androidx.lifecycle.lifecycleScope
import com.processout.sdk.R
import com.processout.sdk.api.dispatcher.POEventDispatcher
import com.processout.sdk.api.model.event.POCardTokenizationEvent
import com.processout.sdk.api.model.request.POCardTokenizationPreferredSchemeRequest
import com.processout.sdk.api.model.request.POCardTokenizationProcessingRequest
import com.processout.sdk.api.model.request.POCardTokenizationShouldContinueRequest
import com.processout.sdk.api.model.response.POCard
import com.processout.sdk.api.model.response.toResponse
import com.processout.sdk.core.ProcessOutActivityResult
import com.processout.sdk.ui.card.tokenization.delegate.CardTokenizationEligibilityRequest
import com.processout.sdk.ui.card.tokenization.delegate.POCardTokenizationDelegate
import com.processout.sdk.ui.card.tokenization.delegate.POCardTokenizationState
import com.processout.sdk.ui.card.tokenization.delegate.toResponse
import com.processout.sdk.ui.card.tokenization.delegate.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch

Expand Down Expand Up @@ -136,7 +129,7 @@ class POCardTokenizationLauncher private constructor(
}

private fun dispatchTokenizedCard() {
eventDispatcher.subscribeForRequest<POCardTokenizationProcessingRequest>(
eventDispatcher.subscribeForRequest<CardTokenizationProcessingRequest>(
coroutineScope = scope
) { request ->
scope.launch {
Expand Down Expand Up @@ -164,7 +157,7 @@ class POCardTokenizationLauncher private constructor(
}

private fun dispatchPreferredScheme() {
eventDispatcher.subscribeForRequest<POCardTokenizationPreferredSchemeRequest>(
eventDispatcher.subscribeForRequest<CardTokenizationPreferredSchemeRequest>(
coroutineScope = scope
) { request ->
scope.launch {
Expand All @@ -175,7 +168,7 @@ class POCardTokenizationLauncher private constructor(
}

private fun dispatchShouldContinue() {
eventDispatcher.subscribeForRequest<POCardTokenizationShouldContinueRequest>(
eventDispatcher.subscribeForRequest<CardTokenizationShouldContinueRequest>(
coroutineScope = scope
) { request ->
scope.launch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.processout.sdk.api.dispatcher.POEventDispatcher
import com.processout.sdk.api.model.event.POCardTokenizationEvent
import com.processout.sdk.api.model.request.POCardTokenizationPreferredSchemeRequest
import com.processout.sdk.api.model.request.POCardTokenizationProcessingRequest
import com.processout.sdk.api.model.request.POCardTokenizationShouldContinueRequest
import com.processout.sdk.api.model.response.POCard
import com.processout.sdk.api.model.response.toResponse
import com.processout.sdk.core.ProcessOutResult
import com.processout.sdk.core.getOrNull
import com.processout.sdk.ui.card.scanner.POCardScannerLauncher
Expand All @@ -35,10 +31,7 @@ import com.processout.sdk.ui.card.tokenization.CardTokenizationSideEffect.CardSc
import com.processout.sdk.ui.card.tokenization.CardTokenizationViewModel
import com.processout.sdk.ui.card.tokenization.POCardTokenizationConfiguration
import com.processout.sdk.ui.card.tokenization.POCardTokenizationConfiguration.Button
import com.processout.sdk.ui.card.tokenization.delegate.CardTokenizationEligibilityRequest
import com.processout.sdk.ui.card.tokenization.delegate.POCardTokenizationDelegate
import com.processout.sdk.ui.card.tokenization.delegate.POCardTokenizationState
import com.processout.sdk.ui.card.tokenization.delegate.toResponse
import com.processout.sdk.ui.card.tokenization.delegate.*
import com.processout.sdk.ui.card.tokenization.screen.CardTokenizationContent
import com.processout.sdk.ui.card.tokenization.screen.CardTokenizationScreen
import com.processout.sdk.ui.core.theme.ProcessOutTheme
Expand Down Expand Up @@ -210,7 +203,7 @@ class POCardTokenizationViewComponent private constructor(
}

private fun dispatchTokenizedCard() {
eventDispatcher.subscribeForRequest<POCardTokenizationProcessingRequest>(
eventDispatcher.subscribeForRequest<CardTokenizationProcessingRequest>(
coroutineScope = scope
) { request ->
scope.launch {
Expand Down Expand Up @@ -238,7 +231,7 @@ class POCardTokenizationViewComponent private constructor(
}

private fun dispatchPreferredScheme() {
eventDispatcher.subscribeForRequest<POCardTokenizationPreferredSchemeRequest>(
eventDispatcher.subscribeForRequest<CardTokenizationPreferredSchemeRequest>(
coroutineScope = scope
) { request ->
scope.launch {
Expand All @@ -249,7 +242,7 @@ class POCardTokenizationViewComponent private constructor(
}

private fun dispatchShouldContinue() {
eventDispatcher.subscribeForRequest<POCardTokenizationShouldContinueRequest>(
eventDispatcher.subscribeForRequest<CardTokenizationShouldContinueRequest>(
coroutineScope = scope
) { request ->
scope.launch {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.processout.sdk.ui.card.tokenization.delegate

import com.processout.sdk.api.dispatcher.POEventDispatcher
import com.processout.sdk.api.model.response.POCardIssuerInformation
import java.util.UUID

internal data class CardTokenizationPreferredSchemeRequest(
override val uuid: UUID = UUID.randomUUID(),
val issuerInformation: POCardIssuerInformation
) : POEventDispatcher.Request

internal data class CardTokenizationPreferredSchemeResponse(
override val uuid: UUID,
val preferredScheme: String?
) : POEventDispatcher.Response

internal fun CardTokenizationPreferredSchemeRequest.toResponse(
preferredScheme: String?
) = CardTokenizationPreferredSchemeResponse(uuid, preferredScheme)
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.processout.sdk.ui.card.tokenization.delegate

import com.processout.sdk.api.dispatcher.POEventDispatcher
import com.processout.sdk.api.model.response.POCard
import com.processout.sdk.core.ProcessOutResult
import com.processout.sdk.core.fold
import java.util.UUID

internal data class CardTokenizationProcessingRequest(
override val uuid: UUID = UUID.randomUUID(),
val card: POCard,
val saveCard: Boolean
) : POEventDispatcher.Request

internal data class CardTokenizationProcessingResponse(
override val uuid: UUID,
val result: ProcessOutResult<POCard>
) : POEventDispatcher.Response

internal fun CardTokenizationProcessingRequest.toResponse(
result: ProcessOutResult<Any>
) = CardTokenizationProcessingResponse(
uuid,
result.fold(
onSuccess = { ProcessOutResult.Success(card) },
onFailure = { it }
)
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.processout.sdk.ui.card.tokenization.delegate

import com.processout.sdk.api.dispatcher.POEventDispatcher
import com.processout.sdk.core.ProcessOutResult
import java.util.UUID

internal data class CardTokenizationShouldContinueRequest(
override val uuid: UUID = UUID.randomUUID(),
val failure: ProcessOutResult.Failure
) : POEventDispatcher.Request

internal data class CardTokenizationShouldContinueResponse(
override val uuid: UUID,
val failure: ProcessOutResult.Failure,
val shouldContinue: Boolean
) : POEventDispatcher.Response

internal fun CardTokenizationShouldContinueRequest.toResponse(
shouldContinue: Boolean
) = CardTokenizationShouldContinueResponse(uuid, failure, shouldContinue)
Loading
Loading