diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 3ccda4e..ae4af79 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -5,6 +5,7 @@ on:
branches:
- 'master'
- 'main'
+ - 'epic/**'
jobs:
deploy:
diff --git a/pom.xml b/pom.xml
index 5130501..f37b17c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
adapter-flow-lib
- 1.0.4
+ 1.1.0
jar
adapter-flow-lib
@@ -46,7 +46,7 @@
UTF-8
2.0.0
1.20-be9cdeb
- 1.654-ab44b9d
+ 1.670-1d0c1ec
3.12.0
1.15
1.7.36
@@ -60,7 +60,7 @@
6.1.6
3.3.1
1.66-01353ce
- 2.0.0
+ 3.0.0
diff --git a/src/main/java/dev/vality/adapter/flow/lib/controller/ThreeDsCallbackController.java b/src/main/java/dev/vality/adapter/flow/lib/controller/ThreeDsCallbackController.java
index 4027f64..fb09b0d 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/controller/ThreeDsCallbackController.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/controller/ThreeDsCallbackController.java
@@ -22,10 +22,4 @@ public String receivePaymentIncomingParameters(HttpServletRequest servletRequest
HttpServletResponse servletResponse) {
return this.threeDsAdapterService.receivePaymentIncomingParameters(servletRequest, servletResponse);
}
-
- @PostMapping({"recurrent-term-url"})
- public String receiveRecurrentIncomingParameters(HttpServletRequest servletRequest,
- HttpServletResponse servletResponse) {
- return this.threeDsAdapterService.receiveRecurrentIncomingParameters(servletRequest, servletResponse);
- }
}
\ No newline at end of file
diff --git a/src/main/java/dev/vality/adapter/flow/lib/converter/entry/RecCtxToEntryModelConverter.java b/src/main/java/dev/vality/adapter/flow/lib/converter/entry/RecCtxToEntryModelConverter.java
deleted file mode 100644
index 31dff69..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/converter/entry/RecCtxToEntryModelConverter.java
+++ /dev/null
@@ -1,150 +0,0 @@
-package dev.vality.adapter.flow.lib.converter.entry;
-
-import dev.vality.adapter.common.cds.CdsStorageClient;
-import dev.vality.adapter.common.cds.model.CardDataProxyModel;
-import dev.vality.adapter.common.damsel.ProxyProviderPackageCreators;
-import dev.vality.adapter.common.damsel.ProxyProviderPackageExtractors;
-import dev.vality.adapter.flow.lib.constant.MetaData;
-import dev.vality.adapter.flow.lib.model.*;
-import dev.vality.adapter.flow.lib.serde.TemporaryContextDeserializer;
-import dev.vality.adapter.flow.lib.service.CardDataService;
-import dev.vality.adapter.flow.lib.service.IdGenerator;
-import dev.vality.adapter.flow.lib.service.TemporaryContextService;
-import dev.vality.adapter.flow.lib.utils.CardDataUtils;
-import dev.vality.cds.storage.Auth3DS;
-import dev.vality.cds.storage.CardData;
-import dev.vality.cds.storage.SessionData;
-import dev.vality.damsel.domain.BankCard;
-import dev.vality.damsel.domain.DisposablePaymentResource;
-import dev.vality.damsel.domain.PaymentTool;
-import dev.vality.damsel.domain.TransactionInfo;
-import dev.vality.damsel.proxy_provider.RecurrentPaymentTool;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.core.convert.converter.Converter;
-
-import java.util.HashMap;
-
-@Slf4j
-@RequiredArgsConstructor
-public class RecCtxToEntryModelConverter implements Converter {
-
- private final TemporaryContextDeserializer temporaryContextDeserializer;
- private final CdsStorageClient cdsStorageClient;
- private final IdGenerator idGenerator;
- private final TemporaryContextService temporaryContextService;
- private final CardDataService cardDataService;
-
- @Override
- public EntryStateModel convert(RecurrentTokenContext context) {
- var generalExitStateModel = temporaryContextService.getTemporaryContext(
- context, temporaryContextDeserializer);
- var tokenInfo = context.getTokenInfo();
- var recurrentPaymentTool = tokenInfo.getPaymentTool();
- var paymentResource = recurrentPaymentTool.getPaymentResource();
- var paymentTool = paymentResource.getPaymentTool();
- validatePaymentTool(paymentTool);
- var entryStateModelBuilder = EntryStateModel.builder();
- var cardData = initCardData(context, generalExitStateModel, paymentResource);
- var mobilePaymentData = initMobilePaymentData(context, generalExitStateModel);
-
- TransactionInfo transactionInfo = tokenInfo.getTrx();
- String invoiceFormatPaymentId = tokenInfo.getPaymentTool().getId();
- Long orderId = idGenerator.get(invoiceFormatPaymentId);
- var temporaryContext = temporaryContextService.getTemporaryContext(context, temporaryContextDeserializer);
-
- return entryStateModelBuilder
- .baseRequestModel(BaseRequestModel.builder()
- .recurrentPaymentData(RecurrentPaymentData
- .builder()
- .makeRecurrent(true)
- .recToken(transactionInfo != null && transactionInfo.getExtra() != null
- ? transactionInfo.getExtra().get(MetaData.META_REC_TOKEN)
- : null)
- .build())
- .mobilePaymentData(mobilePaymentData)
- .cardData(cardData)
- .refundData(initRefundData(recurrentPaymentTool, orderId))
- .paymentId(orderId)
- .invoiceFormatPaymentId(invoiceFormatPaymentId)
- .currency(Currency.builder()
- .name(recurrentPaymentTool.getMinimalPaymentCost().getCurrency().getName())
- .symbolicCode(
- recurrentPaymentTool.getMinimalPaymentCost().getCurrency().getSymbolicCode())
- .numericCode(
- recurrentPaymentTool.getMinimalPaymentCost().getCurrency().getNumericCode())
- .exponent(recurrentPaymentTool.getMinimalPaymentCost().getCurrency().getExponent())
- .build()
- )
- .amount(recurrentPaymentTool.getMinimalPaymentCost().getAmount())
- .details(recurrentPaymentTool.getId())
- .payerInfo(PayerInfo.builder()
- .ip(ProxyProviderPackageCreators.extractIpAddress(context))
- .build())
- .adapterConfigurations(context.getOptions())
- .providerTrxId(transactionInfo != null ? transactionInfo.getId() : null)
- .savedData(transactionInfo == null || transactionInfo.getExtra() == null
- ? new HashMap<>()
- : transactionInfo.getExtra())
- .threeDsDataFromMpiCallback(temporaryContext.getThreeDsData())
- .build())
- .currentStep(generalExitStateModel.getNextStep())
- .startedPollingInfo(temporaryContext.getPollingInfo())
- .build();
- }
-
- private dev.vality.adapter.flow.lib.model.CardData initCardData(RecurrentTokenContext context,
- TemporaryContext generalExitStateModel,
- DisposablePaymentResource paymentResource) {
- var cardDataBuilder = dev.vality.adapter.flow.lib.model.CardData.builder();
- if (generalExitStateModel == null || generalExitStateModel.getNextStep() == null) {
- SessionData sessionData = cdsStorageClient.getSessionData(context);
- if (!sessionData.getAuthData().isSetAuth3ds()) {
- CardDataProxyModel cardData = getCardData(context, paymentResource);
- cardDataBuilder.cardHolder(cardData.getCardholderName())
- .pan(cardData.getPan())
- .cvv2(CardDataUtils.extractCvv2(sessionData))
- .expYear(cardData.getExpYear())
- .expMonth(cardData.getExpMonth())
- .cardToken(ProxyProviderPackageExtractors.extractBankCardToken(paymentResource));
- }
- }
- return cardDataBuilder.build();
- }
-
- private MobilePaymentData initMobilePaymentData(RecurrentTokenContext context,
- TemporaryContext generalExitStateModel) {
- MobilePaymentData.MobilePaymentDataBuilder, ?> mobilePaymentDataBuilder = MobilePaymentData.builder();
- if (generalExitStateModel == null || generalExitStateModel.getNextStep() == null) {
- SessionData sessionData = cdsStorageClient.getSessionData(context);
- if (sessionData.getAuthData().isSetAuth3ds()) {
- Auth3DS auth3ds = sessionData.getAuthData().getAuth3ds();
- mobilePaymentDataBuilder.cryptogram(auth3ds.getCryptogram())
- .eci(auth3ds.getEci());
- }
- }
- return mobilePaymentDataBuilder.build();
- }
-
- private void validatePaymentTool(PaymentTool paymentTool) {
- if (!paymentTool.isSetBankCard()) {
- throw new IllegalArgumentException("Wrong recurrentPaymentTool. It should be bank card");
- }
- }
-
- private RefundData initRefundData(RecurrentPaymentTool recurrentPaymentTool, Long orderId) {
- return RefundData.builder()
- .id(String.valueOf(orderId))
- .amount(recurrentPaymentTool.getMinimalPaymentCost().getAmount())
- .build();
- }
-
- private CardDataProxyModel getCardData(RecurrentTokenContext context, DisposablePaymentResource paymentResource) {
- String cardToken = ProxyProviderPackageExtractors.extractBankCardToken(paymentResource);
- CardData cardData = cdsStorageClient.getCardData(cardToken);
- BankCard bankCard = ProxyProviderPackageExtractors.extractBankCard(context);
- return cardDataService.getCardDataProxyModel(context, cardData, bankCard);
- }
-
-}
diff --git a/src/main/java/dev/vality/adapter/flow/lib/converter/exit/ExitModelToRecTokenProxyResultConverter.java b/src/main/java/dev/vality/adapter/flow/lib/converter/exit/ExitModelToRecTokenProxyResultConverter.java
deleted file mode 100644
index 438ff57..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/converter/exit/ExitModelToRecTokenProxyResultConverter.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package dev.vality.adapter.flow.lib.converter.exit;
-
-import dev.vality.adapter.flow.lib.converter.ExitStateModelToTemporaryContextConverter;
-import dev.vality.adapter.flow.lib.flow.RecurrentResultIntentResolver;
-import dev.vality.adapter.flow.lib.model.ExitStateModel;
-import dev.vality.adapter.flow.lib.serde.TemporaryContextSerializer;
-import dev.vality.adapter.flow.lib.service.factory.SimpleRecurrentIntentResultFactory;
-import dev.vality.adapter.flow.lib.utils.AdditionalInfoUtils;
-import dev.vality.damsel.domain.TransactionInfo;
-import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
-import lombok.RequiredArgsConstructor;
-import org.springframework.core.convert.converter.Converter;
-import org.springframework.util.StringUtils;
-
-import java.util.HashMap;
-
-@RequiredArgsConstructor
-public class ExitModelToRecTokenProxyResultConverter implements Converter {
-
- private final SimpleRecurrentIntentResultFactory recurrentIntentResultFactory;
- private final TemporaryContextSerializer serializer;
- private final RecurrentResultIntentResolver recurrentResultIntentResolver;
- private final ExitStateModelToTemporaryContextConverter contextConverter;
-
- @Override
- public RecurrentTokenProxyResult convert(ExitStateModel exitStateModel) {
- if (exitStateModel.getErrorCode() != null) {
- return new RecurrentTokenProxyResult(
- recurrentIntentResultFactory.createFinishIntentFailed(
- exitStateModel.getErrorCode(),
- exitStateModel.getErrorMessage()))
- .setTrx(StringUtils.hasText(exitStateModel.getProviderTrxId())
- ? getTransactionInfo(exitStateModel)
- : null);
- }
-
- RecurrentTokenIntent intent = recurrentResultIntentResolver.initIntentByStep(exitStateModel);
-
- return new RecurrentTokenProxyResult(intent)
- .setNextState(serializer.writeByte(contextConverter.convert(exitStateModel)))
- .setTrx(getTransactionInfo(exitStateModel));
- }
-
- private TransactionInfo getTransactionInfo(ExitStateModel exitStateModel) {
- return new TransactionInfo()
- .setId(exitStateModel.getProviderTrxId())
- .setExtra(exitStateModel.getTrxExtra() != null
- ? exitStateModel.getTrxExtra()
- : new HashMap<>())
- .setAdditionalInfo(AdditionalInfoUtils.initAdditionalTrxInfo(exitStateModel));
- }
-}
-
diff --git a/src/main/java/dev/vality/adapter/flow/lib/flow/RecurrentResultIntentResolver.java b/src/main/java/dev/vality/adapter/flow/lib/flow/RecurrentResultIntentResolver.java
deleted file mode 100644
index 7e4c729..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/flow/RecurrentResultIntentResolver.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package dev.vality.adapter.flow.lib.flow;
-
-import dev.vality.adapter.flow.lib.model.ExitStateModel;
-import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
-
-public interface RecurrentResultIntentResolver {
-
- RecurrentTokenIntent initIntentByStep(ExitStateModel exitStateModel);
-
-}
diff --git a/src/main/java/dev/vality/adapter/flow/lib/flow/full/GenerateTokenResultIntentResolverImpl.java b/src/main/java/dev/vality/adapter/flow/lib/flow/full/GenerateTokenResultIntentResolverImpl.java
deleted file mode 100644
index 40e995c..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/flow/full/GenerateTokenResultIntentResolverImpl.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package dev.vality.adapter.flow.lib.flow.full;
-
-import dev.vality.adapter.flow.lib.constant.Step;
-import dev.vality.adapter.flow.lib.flow.RecurrentResultIntentResolver;
-import dev.vality.adapter.flow.lib.model.ExitStateModel;
-import dev.vality.adapter.flow.lib.service.factory.SimpleRecurrentIntentResultFactory;
-import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
-import lombok.RequiredArgsConstructor;
-
-@RequiredArgsConstructor
-public class GenerateTokenResultIntentResolverImpl implements RecurrentResultIntentResolver {
-
- private final SimpleRecurrentIntentResultFactory recurrentIntentResultFactory;
-
- @Override
- public RecurrentTokenIntent initIntentByStep(ExitStateModel exitStateModel) {
- Step nextStep = exitStateModel.getNextStep();
- return switch (nextStep) {
- case REFUND, CAPTURE -> recurrentIntentResultFactory.createSleepIntentForReinvocation();
- case FINISH_THREE_DS_V1, FINISH_THREE_DS_V2 -> recurrentIntentResultFactory.createIntentWithSuspension(
- exitStateModel);
- case DO_NOTHING -> recurrentIntentResultFactory.createFinishIntent(exitStateModel.getRecToken());
- default -> throw new IllegalStateException("Wrong state: " + nextStep);
- };
- }
-
-}
diff --git a/src/main/java/dev/vality/adapter/flow/lib/flow/simple/SimpleRedirectGenerateTokenResultIntentResolver.java b/src/main/java/dev/vality/adapter/flow/lib/flow/simple/SimpleRedirectGenerateTokenResultIntentResolver.java
deleted file mode 100644
index 05e9337..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/flow/simple/SimpleRedirectGenerateTokenResultIntentResolver.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package dev.vality.adapter.flow.lib.flow.simple;
-
-import dev.vality.adapter.flow.lib.constant.Step;
-import dev.vality.adapter.flow.lib.flow.RecurrentResultIntentResolver;
-import dev.vality.adapter.flow.lib.model.ExitStateModel;
-import dev.vality.adapter.flow.lib.service.factory.SimpleRecurrentIntentResultFactory;
-import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
-import lombok.RequiredArgsConstructor;
-
-@RequiredArgsConstructor
-public class SimpleRedirectGenerateTokenResultIntentResolver implements RecurrentResultIntentResolver {
-
- private final SimpleRecurrentIntentResultFactory recurrentIntentResultFactory;
-
- @Override
- public RecurrentTokenIntent initIntentByStep(ExitStateModel exitStateModel) {
- Step nextStep = exitStateModel.getNextStep();
- Step currentStep = exitStateModel.getEntryStateModel().getCurrentStep();
- return switch (nextStep) {
- case CHECK_STATUS -> currentStep == Step.GENERATE_TOKEN
- ? recurrentIntentResultFactory.createIntentWithSuspension(exitStateModel)
- : recurrentIntentResultFactory.createSleepIntentWithExponentialPolling(exitStateModel);
- case DO_NOTHING -> recurrentIntentResultFactory.createFinishIntent(exitStateModel.getRecToken());
- default -> throw new IllegalStateException("Wrong state: " + nextStep);
- };
- }
-
-}
diff --git a/src/main/java/dev/vality/adapter/flow/lib/flow/simple/UnsupportedGenerateTokenResultIntentResolver.java b/src/main/java/dev/vality/adapter/flow/lib/flow/simple/UnsupportedGenerateTokenResultIntentResolver.java
deleted file mode 100644
index 56067e5..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/flow/simple/UnsupportedGenerateTokenResultIntentResolver.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package dev.vality.adapter.flow.lib.flow.simple;
-
-import dev.vality.adapter.flow.lib.flow.RecurrentResultIntentResolver;
-import dev.vality.adapter.flow.lib.model.ExitStateModel;
-import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
-import lombok.RequiredArgsConstructor;
-
-@RequiredArgsConstructor
-public class UnsupportedGenerateTokenResultIntentResolver implements RecurrentResultIntentResolver {
-
- @Override
- public RecurrentTokenIntent initIntentByStep(ExitStateModel exitStateModel) {
- throw new UnsupportedOperationException();
- }
-
-}
diff --git a/src/main/java/dev/vality/adapter/flow/lib/handler/ProxyProviderServiceImpl.java b/src/main/java/dev/vality/adapter/flow/lib/handler/ProxyProviderServiceImpl.java
index 52fe9aa..fd8a935 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/handler/ProxyProviderServiceImpl.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/handler/ProxyProviderServiceImpl.java
@@ -2,7 +2,10 @@
import dev.vality.adapter.flow.lib.handler.callback.CallbackHandler;
import dev.vality.adapter.flow.lib.validator.AdapterConfigurationValidator;
-import dev.vality.damsel.proxy_provider.*;
+import dev.vality.damsel.proxy_provider.PaymentCallbackResult;
+import dev.vality.damsel.proxy_provider.PaymentContext;
+import dev.vality.damsel.proxy_provider.PaymentProxyResult;
+import dev.vality.damsel.proxy_provider.ProviderProxySrv;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.thrift.TException;
@@ -14,25 +17,9 @@
public class ProxyProviderServiceImpl implements ProviderProxySrv.Iface {
private final CallbackHandler paymentCallbackHandler;
- private final CallbackHandler recurrentTokenCallbackHandler;
private final ServerFlowHandler serverFlowHandler;
- private final ServerFlowHandler generateTokenFlowHandler;
private final AdapterConfigurationValidator adapterConfigurationValidator;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- adapterConfigurationValidator.validate(context.getOptions());
- return generateTokenFlowHandler.handle(context);
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer byteBuffer,
- RecurrentTokenContext context
- ) throws TException {
- return recurrentTokenCallbackHandler.handleCallback(byteBuffer, context);
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
adapterConfigurationValidator.validate(context.getOptions());
diff --git a/src/main/java/dev/vality/adapter/flow/lib/handler/ServerHandlerLogDecorator.java b/src/main/java/dev/vality/adapter/flow/lib/handler/ServerHandlerLogDecorator.java
index d43e179..c8367dc 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/handler/ServerHandlerLogDecorator.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/handler/ServerHandlerLogDecorator.java
@@ -1,14 +1,18 @@
package dev.vality.adapter.flow.lib.handler;
import dev.vality.adapter.flow.lib.utils.PaymentResourceTypeResolver;
-import dev.vality.damsel.proxy_provider.*;
+import dev.vality.damsel.proxy_provider.PaymentCallbackResult;
+import dev.vality.damsel.proxy_provider.PaymentContext;
+import dev.vality.damsel.proxy_provider.PaymentProxyResult;
+import dev.vality.damsel.proxy_provider.ProviderProxySrv;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.thrift.TException;
import java.nio.ByteBuffer;
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageExtractors.*;
+import static dev.vality.adapter.common.damsel.ProxyProviderPackageExtractors.extractInvoiceId;
+import static dev.vality.adapter.common.damsel.ProxyProviderPackageExtractors.extractTargetInvoicePaymentStatus;
import static dev.vality.adapter.common.damsel.ProxyProviderVerification.isUndefinedResultOrUnavailable;
@Slf4j
@@ -17,31 +21,6 @@ public class ServerHandlerLogDecorator implements ProviderProxySrv.Iface {
private final ProviderProxySrv.Iface handler;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- String recurrentId = extractRecurrentId(context);
- log.info("Generate token started with recurrentId {}", recurrentId);
- try {
- RecurrentTokenProxyResult proxyResult = handler.generateToken(context);
- log.info("Generate token finished {} with recurrentId {}", proxyResult, recurrentId);
- return proxyResult;
- } catch (Exception ex) {
- String message = "Failed handle generate token with recurrentId " + recurrentId;
- logMessage(ex, message);
- throw ex;
- }
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(ByteBuffer byteBuffer,
- RecurrentTokenContext context) throws TException {
- String recurrentId = extractRecurrentId(context);
- log.info("handleRecurrentTokenCallback: start with recurrentId {}", recurrentId);
- RecurrentTokenCallbackResult result = handler.handleRecurrentTokenCallback(byteBuffer, context);
- log.info("handleRecurrentTokenCallback end {} with recurrentId {}", result, recurrentId);
- return result;
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
String invoiceId = extractInvoiceId(context);
diff --git a/src/main/java/dev/vality/adapter/flow/lib/handler/ServerHandlerMdcDecorator.java b/src/main/java/dev/vality/adapter/flow/lib/handler/ServerHandlerMdcDecorator.java
index cb25faf..6ed5253 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/handler/ServerHandlerMdcDecorator.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/handler/ServerHandlerMdcDecorator.java
@@ -1,7 +1,10 @@
package dev.vality.adapter.flow.lib.handler;
import dev.vality.adapter.flow.lib.logback.mdc.MdcContext;
-import dev.vality.damsel.proxy_provider.*;
+import dev.vality.damsel.proxy_provider.PaymentCallbackResult;
+import dev.vality.damsel.proxy_provider.PaymentContext;
+import dev.vality.damsel.proxy_provider.PaymentProxyResult;
+import dev.vality.damsel.proxy_provider.ProviderProxySrv;
import lombok.RequiredArgsConstructor;
import org.apache.thrift.TException;
import org.slf4j.MDC;
@@ -13,27 +16,6 @@ public class ServerHandlerMdcDecorator implements ProviderProxySrv.Iface {
private final ProviderProxySrv.Iface serverHandlerLogDecorator;
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext recurrentTokenContext) throws TException {
- MdcContext.mdcPutContext(recurrentTokenContext);
- try {
- return serverHandlerLogDecorator.generateToken(recurrentTokenContext);
- } finally {
- MDC.clear();
- }
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(ByteBuffer byteBuffer,
- RecurrentTokenContext recurrentTokenContext)
- throws TException {
- MdcContext.mdcPutContext(recurrentTokenContext);
- try {
- return serverHandlerLogDecorator.handleRecurrentTokenCallback(byteBuffer, recurrentTokenContext);
- } finally {
- MDC.clear();
- }
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext paymentContext) throws TException {
MdcContext.mdcPutContext(paymentContext);
diff --git a/src/main/java/dev/vality/adapter/flow/lib/handler/callback/RecurrentTokenCallbackHandler.java b/src/main/java/dev/vality/adapter/flow/lib/handler/callback/RecurrentTokenCallbackHandler.java
deleted file mode 100644
index d8c0ac3..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/handler/callback/RecurrentTokenCallbackHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package dev.vality.adapter.flow.lib.handler.callback;
-
-import dev.vality.adapter.common.damsel.BasePackageCreators;
-import dev.vality.adapter.common.damsel.ProxyProviderPackageCreators;
-import dev.vality.adapter.flow.lib.model.TemporaryContext;
-import dev.vality.adapter.flow.lib.serde.Deserializer;
-import dev.vality.adapter.flow.lib.serde.StateSerializer;
-import dev.vality.adapter.flow.lib.service.TemporaryContextService;
-import dev.vality.damsel.proxy_provider.RecurrentTokenCallbackResult;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-
-import java.nio.ByteBuffer;
-
-@Slf4j
-@RequiredArgsConstructor
-public class RecurrentTokenCallbackHandler
- implements CallbackHandler {
-
- private final Deserializer adapterDeserializer;
- private final StateSerializer adapterSerializer;
- private final TemporaryContextService temporaryContextService;
-
- public RecurrentTokenCallbackResult handleCallback(ByteBuffer callback, RecurrentTokenContext context) {
- var generalExitStateModel = initTemporaryContext(callback, context);
- byte[] callbackResponse = new byte[0];
- return ProxyProviderPackageCreators.createRecurrentTokenCallbackResult(callbackResponse,
- (new RecurrentTokenProxyResult()).setIntent(RecurrentTokenIntent
- .sleep(ProxyProviderPackageCreators.createSleepIntent(
- BasePackageCreators.createTimerTimeout(0))))
- .setNextState(this.adapterSerializer.writeByte(generalExitStateModel))
- );
- }
-
- private TemporaryContext initTemporaryContext(ByteBuffer callback, RecurrentTokenContext context) {
- var temporaryContext = temporaryContextService.getTemporaryContext(context, this.adapterDeserializer);
- return temporaryContextService.appendThreeDsParametersToContext(callback, temporaryContext);
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/dev/vality/adapter/flow/lib/logback/mdc/MdcContext.java b/src/main/java/dev/vality/adapter/flow/lib/logback/mdc/MdcContext.java
index e121807..ee3788f 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/logback/mdc/MdcContext.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/logback/mdc/MdcContext.java
@@ -2,7 +2,6 @@
import dev.vality.damsel.domain.TransactionInfo;
import dev.vality.damsel.proxy_provider.PaymentContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.slf4j.MDC;
@@ -13,11 +12,6 @@
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class MdcContext {
- public static void mdcPutContext(RecurrentTokenContext context, String[] fieldsToPutInMdc) {
- TransactionInfo transactionInfo = context.getTokenInfo().getTrx();
- mdcPutContextTransactionInfo(transactionInfo, fieldsToPutInMdc);
- }
-
public static void mdcPutContext(PaymentContext context, String[] fieldsToPutInMdc) {
TransactionInfo transactionInfo = context.getPaymentInfo().getPayment().getTrx();
mdcPutContextTransactionInfo(transactionInfo, fieldsToPutInMdc);
@@ -28,11 +22,6 @@ public static void mdcPutContext(PaymentContext context) {
mdcPutContextTransactionInfo(transactionInfo);
}
- public static void mdcPutContext(RecurrentTokenContext context) {
- TransactionInfo transactionInfo = context.getTokenInfo().getTrx();
- mdcPutContextTransactionInfo(transactionInfo);
- }
-
public static void mdcPutContextTransactionInfo(TransactionInfo transactionInfo, String[] fieldsToPutInMdc) {
if (transactionInfo != null) {
Map trxextra = transactionInfo.getExtra();
diff --git a/src/main/java/dev/vality/adapter/flow/lib/service/CardDataService.java b/src/main/java/dev/vality/adapter/flow/lib/service/CardDataService.java
index dc0ce73..cd26a0d 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/service/CardDataService.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/service/CardDataService.java
@@ -4,15 +4,10 @@
import dev.vality.cds.storage.CardData;
import dev.vality.damsel.domain.BankCard;
import dev.vality.damsel.proxy_provider.PaymentContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
public interface CardDataService {
- CardDataProxyModel getCardDataProxyModel(RecurrentTokenContext context,
- CardData cardData,
- BankCard bankCard);
-
CardDataProxyModel getCardDataProxyModel(PaymentContext context, CardData cardData, BankCard bankCard);
CardDataProxyModel getCardDataProxyModelFromCds(PaymentContext context);
diff --git a/src/main/java/dev/vality/adapter/flow/lib/service/CardDataServiceDefaultImpl.java b/src/main/java/dev/vality/adapter/flow/lib/service/CardDataServiceDefaultImpl.java
index 9614e6c..1b3e84b 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/service/CardDataServiceDefaultImpl.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/service/CardDataServiceDefaultImpl.java
@@ -6,7 +6,6 @@
import dev.vality.cds.storage.CardData;
import dev.vality.damsel.domain.BankCard;
import dev.vality.damsel.proxy_provider.PaymentContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -16,13 +15,6 @@ public class CardDataServiceDefaultImpl implements CardDataService {
private final CdsStorageClient cdsStorageClient;
- @Override
- public CardDataProxyModel getCardDataProxyModel(RecurrentTokenContext context,
- CardData cardData,
- BankCard bankCard) {
- return BankCardExtractor.initCardDataProxyModel(bankCard, cardData);
- }
-
@Override
public CardDataProxyModel getCardDataProxyModel(PaymentContext context, CardData cardData, BankCard bankCard) {
return BankCardExtractor.initCardDataProxyModel(bankCard, cardData);
diff --git a/src/main/java/dev/vality/adapter/flow/lib/service/CardDataServiceWithHolderNamesImpl.java b/src/main/java/dev/vality/adapter/flow/lib/service/CardDataServiceWithHolderNamesImpl.java
index 3a173ab..d68ca14 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/service/CardDataServiceWithHolderNamesImpl.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/service/CardDataServiceWithHolderNamesImpl.java
@@ -7,7 +7,6 @@
import dev.vality.cds.storage.CardData;
import dev.vality.damsel.domain.BankCard;
import dev.vality.damsel.proxy_provider.PaymentContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -18,17 +17,6 @@ public class CardDataServiceWithHolderNamesImpl implements CardDataService {
private final CdsStorageClient cdsStorageClient;
private final CardHolderNamesService cardHolderNamesService;
- @Override
- public CardDataProxyModel getCardDataProxyModel(RecurrentTokenContext context,
- CardData cardData,
- BankCard bankCard) {
- if (context.getOptions().containsKey(OptionFields.CARD_HOLDER_FROM_FILE.name())) {
- return BankCardExtractor.initCardDataProxyModel(bankCard, cardData,
- cardHolderNamesService.getCardHoldersNames());
- }
- return BankCardExtractor.initCardDataProxyModel(bankCard, cardData);
- }
-
@Override
public CardDataProxyModel getCardDataProxyModel(PaymentContext context, CardData cardData, BankCard bankCard) {
if (context.getOptions().containsKey(OptionFields.CARD_HOLDER_FROM_FILE.name())) {
diff --git a/src/main/java/dev/vality/adapter/flow/lib/service/TemporaryContextService.java b/src/main/java/dev/vality/adapter/flow/lib/service/TemporaryContextService.java
index d491ad3..3d1be9a 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/service/TemporaryContextService.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/service/TemporaryContextService.java
@@ -4,7 +4,6 @@
import dev.vality.adapter.flow.lib.serde.Deserializer;
import dev.vality.adapter.flow.lib.serde.ParametersDeserializer;
import dev.vality.damsel.proxy_provider.PaymentContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -42,12 +41,6 @@ public TemporaryContext appendThreeDsParametersToContext(ByteBuffer callback, Te
}
private static byte[] getState(Object context) {
- if (context instanceof RecurrentTokenContext) {
- if (((RecurrentTokenContext) context).getSession() == null) {
- return new byte[0];
- }
- return ((RecurrentTokenContext) context).getSession().getState();
- }
return ((PaymentContext) context).getSession().getState();
}
diff --git a/src/main/java/dev/vality/adapter/flow/lib/service/ThreeDsAdapterService.java b/src/main/java/dev/vality/adapter/flow/lib/service/ThreeDsAdapterService.java
index 6c74228..47d0e08 100644
--- a/src/main/java/dev/vality/adapter/flow/lib/service/ThreeDsAdapterService.java
+++ b/src/main/java/dev/vality/adapter/flow/lib/service/ThreeDsAdapterService.java
@@ -29,11 +29,6 @@ public String receivePaymentIncomingParameters(HttpServletRequest servletRequest
return this.processCallback(servletRequest, servletResponse, hellgateClient::processPaymentCallback);
}
- public String receiveRecurrentIncomingParameters(HttpServletRequest servletRequest,
- HttpServletResponse servletResponse) {
- return this.processCallback(servletRequest, servletResponse, hellgateClient::processRecurrentTokenCallback);
- }
-
private String processCallback(HttpServletRequest servletRequest,
HttpServletResponse servletResponse,
BiFunction hgFunction) {
diff --git a/src/main/java/dev/vality/adapter/flow/lib/service/factory/RecurrentIntentResultFactory.java b/src/main/java/dev/vality/adapter/flow/lib/service/factory/RecurrentIntentResultFactory.java
deleted file mode 100644
index 52b8638..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/service/factory/RecurrentIntentResultFactory.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package dev.vality.adapter.flow.lib.service.factory;
-
-import dev.vality.adapter.flow.lib.model.ExitStateModel;
-import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
-
-public interface RecurrentIntentResultFactory {
-
- RecurrentTokenIntent createIntentWithSuspension(ExitStateModel exitStateModel);
-
- RecurrentTokenIntent createSleepIntentForReinvocation();
-
- RecurrentTokenIntent createSleepIntentWithExponentialPolling(ExitStateModel exitStateModel);
-
- RecurrentTokenIntent createFinishIntent(String recToken);
-
- RecurrentTokenIntent createFinishIntentFailed(String errorCode, String errorMessage);
-}
diff --git a/src/main/java/dev/vality/adapter/flow/lib/service/factory/RecurrentIntentResultForwardThreeDsParamsFactory.java b/src/main/java/dev/vality/adapter/flow/lib/service/factory/RecurrentIntentResultForwardThreeDsParamsFactory.java
deleted file mode 100644
index 9349cfa..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/service/factory/RecurrentIntentResultForwardThreeDsParamsFactory.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package dev.vality.adapter.flow.lib.service.factory;
-
-import dev.vality.adapter.common.mapper.ErrorMapping;
-import dev.vality.adapter.flow.lib.model.EntryStateModel;
-import dev.vality.adapter.flow.lib.model.ExitStateModel;
-import dev.vality.adapter.flow.lib.model.PollingInfo;
-import dev.vality.adapter.flow.lib.model.ThreeDsData;
-import dev.vality.adapter.flow.lib.service.ExponentialBackOffPollingService;
-import dev.vality.adapter.flow.lib.service.PollingInfoService;
-import dev.vality.adapter.flow.lib.service.TagManagementService;
-import dev.vality.adapter.flow.lib.utils.ThreeDsDataInitializer;
-import dev.vality.adapter.flow.lib.utils.TimeoutUtils;
-import dev.vality.adapter.flow.lib.utils.TimerProperties;
-import dev.vality.damsel.base.Timer;
-import dev.vality.damsel.proxy_provider.*;
-import lombok.RequiredArgsConstructor;
-
-import java.util.Map;
-
-import static dev.vality.adapter.common.damsel.OptionsExtractors.extractRedirectTimeout;
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageCreators.createPostUserInteraction;
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageCreators.createRecurrentTokenStatusSuccess;
-
-@RequiredArgsConstructor
-public class RecurrentIntentResultForwardThreeDsParamsFactory implements RecurrentIntentResultFactory {
-
- private final TimerProperties timerProperties;
- private final TagManagementService tagManagementService;
- private final PollingInfoService pollingInfoService;
- private final ErrorMapping errorMapping;
- private final ExponentialBackOffPollingService exponentialBackOffPollingService;
-
- @Override
- public RecurrentTokenIntent createIntentWithSuspension(ExitStateModel exitStateModel) {
- EntryStateModel entryStateModel = exitStateModel.getEntryStateModel();
- ThreeDsData threeDsData = exitStateModel.getThreeDsData();
- Map params = ThreeDsDataInitializer.initThreeDsParameters(exitStateModel);
- Map adapterConfigurations = entryStateModel.getBaseRequestModel().getAdapterConfigurations();
- int timerRedirectTimeoutMin = extractRedirectTimeout(
- adapterConfigurations,
- timerProperties.getRedirectTimeoutMin());
- return RecurrentTokenIntent.suspend(
- new SuspendIntent(
- tagManagementService.findTag(params),
- Timer.timeout(TimeoutUtils.toSeconds(timerRedirectTimeoutMin))
- ).setUserInteraction(createPostUserInteraction(threeDsData.getAcsUrl(), params))
- );
- }
-
- @Override
- public RecurrentTokenIntent createSleepIntentForReinvocation() {
- return RecurrentTokenIntent.sleep(new SleepIntent(Timer.timeout(0)));
- }
-
- @Override
- public RecurrentTokenIntent createSleepIntentWithExponentialPolling(ExitStateModel exitStateModel) {
- EntryStateModel entryStateModel = exitStateModel.getEntryStateModel();
- PollingInfo pollingInfo = pollingInfoService.initPollingInfo(entryStateModel);
- if (pollingInfoService.isDeadline(pollingInfo)) {
- return createFinishIntentFailed("Sleep timeout", "Max time pool limit reached");
- }
- exitStateModel.setPollingInfo(pollingInfo);
-
- Map adapterConfigurations = entryStateModel.getBaseRequestModel().getAdapterConfigurations();
- int nextTimeoutSec =
- exponentialBackOffPollingService.prepareNextPollingInterval(pollingInfo, adapterConfigurations);
- return RecurrentTokenIntent.sleep(
- new SleepIntent(Timer.timeout(nextTimeoutSec))
- );
- }
-
- @Override
- public RecurrentTokenIntent createFinishIntent(String recToken) {
- return RecurrentTokenIntent.finish(
- createRecurrentTokenStatusSuccess(recToken)
- );
- }
-
- @Override
- public RecurrentTokenIntent createFinishIntentFailed(String errorCode, String errorMessage) {
- return RecurrentTokenIntent.finish(new RecurrentTokenFinishIntent(RecurrentTokenFinishStatus.failure(
- errorMapping.mapFailure(errorCode, errorMessage)))
- );
- }
-}
diff --git a/src/main/java/dev/vality/adapter/flow/lib/service/factory/SimpleRecurrentIntentResultFactory.java b/src/main/java/dev/vality/adapter/flow/lib/service/factory/SimpleRecurrentIntentResultFactory.java
deleted file mode 100644
index 01b1837..0000000
--- a/src/main/java/dev/vality/adapter/flow/lib/service/factory/SimpleRecurrentIntentResultFactory.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package dev.vality.adapter.flow.lib.service.factory;
-
-import dev.vality.adapter.common.mapper.ErrorMapping;
-import dev.vality.adapter.flow.lib.constant.RedirectFields;
-import dev.vality.adapter.flow.lib.model.EntryStateModel;
-import dev.vality.adapter.flow.lib.model.ExitStateModel;
-import dev.vality.adapter.flow.lib.model.PollingInfo;
-import dev.vality.adapter.flow.lib.model.ThreeDsData;
-import dev.vality.adapter.flow.lib.service.CallbackUrlExtractor;
-import dev.vality.adapter.flow.lib.service.ExponentialBackOffPollingService;
-import dev.vality.adapter.flow.lib.service.PollingInfoService;
-import dev.vality.adapter.flow.lib.service.TagManagementService;
-import dev.vality.adapter.flow.lib.utils.ThreeDsDataInitializer;
-import dev.vality.adapter.flow.lib.utils.TimeoutUtils;
-import dev.vality.adapter.flow.lib.utils.TimerProperties;
-import dev.vality.damsel.base.Timer;
-import dev.vality.damsel.proxy_provider.*;
-import lombok.RequiredArgsConstructor;
-
-import java.util.Map;
-
-import static dev.vality.adapter.common.damsel.OptionsExtractors.extractRedirectTimeout;
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageCreators.createPostUserInteraction;
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageCreators.createRecurrentTokenStatusSuccess;
-
-@RequiredArgsConstructor
-public class SimpleRecurrentIntentResultFactory implements RecurrentIntentResultFactory {
-
- private final TimerProperties timerProperties;
- private final CallbackUrlExtractor callbackUrlExtractor;
- private final TagManagementService tagManagementService;
- private final PollingInfoService pollingInfoService;
- private final ErrorMapping errorMapping;
- private final ExponentialBackOffPollingService exponentialBackOffPollingService;
-
- @Override
- public RecurrentTokenIntent createIntentWithSuspension(ExitStateModel exitStateModel) {
- EntryStateModel entryStateModel = exitStateModel.getEntryStateModel();
- ThreeDsData threeDsData = exitStateModel.getThreeDsData();
- Map params = ThreeDsDataInitializer.initThreeDsParameters(exitStateModel);
- String redirectUrl = entryStateModel.getBaseRequestModel().getSuccessRedirectUrl();
- Map adapterConfigurations = entryStateModel.getBaseRequestModel().getAdapterConfigurations();
- params.put(RedirectFields.TERM_URL.getValue(),
- callbackUrlExtractor.extractCallbackUrl(adapterConfigurations, redirectUrl));
- int timerRedirectTimeoutMin = extractRedirectTimeout(
- adapterConfigurations,
- timerProperties.getRedirectTimeoutMin());
- return RecurrentTokenIntent.suspend(
- new SuspendIntent(
- tagManagementService.findTag(params),
- Timer.timeout(TimeoutUtils.toSeconds(timerRedirectTimeoutMin))
- ).setUserInteraction(createPostUserInteraction(threeDsData.getAcsUrl(), params))
- );
- }
-
- @Override
- public RecurrentTokenIntent createSleepIntentForReinvocation() {
- return RecurrentTokenIntent.sleep(new SleepIntent(Timer.timeout(0)));
- }
-
- @Override
- public RecurrentTokenIntent createSleepIntentWithExponentialPolling(ExitStateModel exitStateModel) {
- EntryStateModel entryStateModel = exitStateModel.getEntryStateModel();
- PollingInfo pollingInfo = pollingInfoService.initPollingInfo(entryStateModel);
- if (pollingInfoService.isDeadline(pollingInfo)) {
- return createFinishIntentFailed("Sleep timeout", "Max time pool limit reached");
- }
- exitStateModel.setPollingInfo(pollingInfo);
-
- Map adapterConfigurations = entryStateModel.getBaseRequestModel().getAdapterConfigurations();
- int nextTimeoutSec =
- exponentialBackOffPollingService.prepareNextPollingInterval(pollingInfo, adapterConfigurations);
- return RecurrentTokenIntent.sleep(
- new SleepIntent(Timer.timeout(nextTimeoutSec))
- );
- }
-
- @Override
- public RecurrentTokenIntent createFinishIntent(String recToken) {
- return RecurrentTokenIntent.finish(
- createRecurrentTokenStatusSuccess(recToken)
- );
- }
-
- @Override
- public RecurrentTokenIntent createFinishIntentFailed(String errorCode, String errorMessage) {
- return RecurrentTokenIntent.finish(new RecurrentTokenFinishIntent(RecurrentTokenFinishStatus.failure(
- errorMapping.mapFailure(errorCode, errorMessage)))
- );
- }
-}
diff --git a/src/test/java/dev/vality/adapter/flow/lib/flow/AbstractGenerateTokenTest.java b/src/test/java/dev/vality/adapter/flow/lib/flow/AbstractGenerateTokenTest.java
index c835b48..af87716 100644
--- a/src/test/java/dev/vality/adapter/flow/lib/flow/AbstractGenerateTokenTest.java
+++ b/src/test/java/dev/vality/adapter/flow/lib/flow/AbstractGenerateTokenTest.java
@@ -1,7 +1,6 @@
package dev.vality.adapter.flow.lib.flow;
import dev.vality.adapter.common.cds.CdsStorageClient;
-import dev.vality.adapter.common.damsel.ProxyProviderVerification;
import dev.vality.adapter.common.hellgate.HellgateClient;
import dev.vality.adapter.flow.lib.client.RemoteClient;
import dev.vality.adapter.flow.lib.constant.Step;
@@ -14,7 +13,10 @@
import dev.vality.adapter.flow.lib.service.impl.CallbackUrlExtractorImpl;
import dev.vality.adapter.flow.lib.validator.AdapterConfigurationValidator;
import dev.vality.bender.BenderSrv;
-import dev.vality.damsel.proxy_provider.*;
+import dev.vality.damsel.proxy_provider.PaymentCallbackResult;
+import dev.vality.damsel.proxy_provider.PaymentContext;
+import dev.vality.damsel.proxy_provider.PaymentProxyResult;
+import dev.vality.damsel.proxy_provider.ProviderProxySrv;
import org.apache.thrift.TException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
@@ -48,59 +50,6 @@ public class AbstractGenerateTokenTest {
@Autowired
protected ProviderProxySrv.Iface serverHandlerLogDecorator;
- protected RecurrentTokenProxyResult checkSuccessAuthOrPay(RecurrentTokenContext paymentContext) throws TException {
- RecurrentTokenProxyResult recurrentTokenProxyResult = serverHandlerLogDecorator.generateToken(paymentContext);
- assertNotNull(recurrentTokenProxyResult.getTrx().getId());
- assertTrue(recurrentTokenProxyResult.getIntent().isSetSleep());
- assertEquals(Step.CAPTURE,
- temporaryContextDeserializer.read(recurrentTokenProxyResult.getNextState()).getNextStep());
- return recurrentTokenProxyResult;
- }
-
- protected RecurrentTokenProxyResult checkSleepWithStatus(Step step,
- RecurrentTokenContext recurrentTokenContext,
- RecurrentTokenProxyResult recurrentTokenProxyResult,
- byte[] state)
- throws TException {
- recurrentTokenContext.getSession()
- .setState(state);
- recurrentTokenContext.getTokenInfo().setTrx(recurrentTokenProxyResult.getTrx());
- RecurrentTokenProxyResult paymentProxyResultDeposit =
- serverHandlerLogDecorator.generateToken(recurrentTokenContext);
- assertTrue(paymentProxyResultDeposit.getIntent().isSetSleep());
- assertEquals(step, temporaryContextDeserializer.read(paymentProxyResultDeposit.getNextState()).getNextStep());
- return paymentProxyResultDeposit;
- }
-
- protected RecurrentTokenProxyResult checkSuccessRefund(RecurrentTokenContext recurrentTokenContext,
- RecurrentTokenProxyResult recurrentTokenProxyResult,
- byte[] state)
- throws TException {
- recurrentTokenContext.getSession().setState(state);
- recurrentTokenContext.getTokenInfo().setTrx(recurrentTokenProxyResult.getTrx());
- RecurrentTokenProxyResult paymentProxyResultRefunded =
- serverHandlerLogDecorator.generateToken(recurrentTokenContext);
- assertEquals(paymentProxyResultRefunded.getIntent().getFinish().getStatus().getSuccess(),
- new RecurrentTokenSuccess(RECURRENT_TOKEN));
- assertNotNull(paymentProxyResultRefunded.getIntent().getFinish().getStatus().getSuccess().getToken());
- assertEquals(Step.DO_NOTHING,
- temporaryContextDeserializer.read(paymentProxyResultRefunded.getNextState()).getNextStep());
- return paymentProxyResultRefunded;
- }
-
- protected RecurrentTokenProxyResult checkSuccessFinishThreeDs(RecurrentTokenContext context,
- RecurrentTokenProxyResult proxyResult,
- RecurrentTokenCallbackResult paymentCallbackResult)
- throws TException {
- context.getTokenInfo().setTrx(proxyResult.getTrx());
- context.getSession().setState(paymentCallbackResult.getResult().getNextState());
- RecurrentTokenProxyResult paymentProxyResult = serverHandlerLogDecorator.generateToken(context);
- String trxId = paymentProxyResult.getTrx().getId();
- assertTrue(ProxyProviderVerification.isSleep(paymentProxyResult));
- assertEquals(trxId, paymentProxyResult.getTrx().getId());
- return paymentProxyResult;
- }
-
protected PaymentProxyResult checkSuspend(Step step,
PaymentContext context,
PaymentProxyResult proxyResult,
@@ -114,16 +63,4 @@ protected PaymentProxyResult checkSuspend(Step step,
assertEquals(step, temporaryContextDeserializer.read(paymentProxyResult.getNextState()).getNextStep());
return paymentProxyResult;
}
-
- protected RecurrentTokenProxyResult processWithDoNothingSuccessResult(RecurrentTokenContext paymentContext,
- RecurrentTokenProxyResult paymentProxyResult)
- throws TException {
- paymentContext.getSession().setState(paymentProxyResult.getNextState());
- RecurrentTokenProxyResult recurrentTokenProxyResult = serverHandlerLogDecorator.generateToken(paymentContext);
- assertTrue(recurrentTokenProxyResult.getIntent().isSetFinish());
- assertTrue(recurrentTokenProxyResult.getIntent().getFinish().getStatus().isSetSuccess());
- assertEquals(Step.DO_NOTHING,
- temporaryContextDeserializer.read(recurrentTokenProxyResult.getNextState()).getNextStep());
- return recurrentTokenProxyResult;
- }
}
diff --git a/src/test/java/dev/vality/adapter/flow/lib/flow/config/HandlerConfig.java b/src/test/java/dev/vality/adapter/flow/lib/flow/config/HandlerConfig.java
index beb319f..8fd8066 100644
--- a/src/test/java/dev/vality/adapter/flow/lib/flow/config/HandlerConfig.java
+++ b/src/test/java/dev/vality/adapter/flow/lib/flow/config/HandlerConfig.java
@@ -7,16 +7,12 @@
import dev.vality.adapter.flow.lib.converter.ExitStateModelToTemporaryContextConverter;
import dev.vality.adapter.flow.lib.converter.base.EntryModelToBaseRequestModelConverter;
import dev.vality.adapter.flow.lib.converter.entry.CtxToEntryModelConverter;
-import dev.vality.adapter.flow.lib.converter.entry.RecCtxToEntryModelConverter;
import dev.vality.adapter.flow.lib.converter.exit.ExitModelToProxyResultConverter;
-import dev.vality.adapter.flow.lib.converter.exit.ExitModelToRecTokenProxyResultConverter;
-import dev.vality.adapter.flow.lib.flow.RecurrentResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.ResultIntentResolver;
import dev.vality.adapter.flow.lib.handler.ProxyProviderServiceImpl;
import dev.vality.adapter.flow.lib.handler.ServerFlowHandler;
import dev.vality.adapter.flow.lib.handler.ServerHandlerLogDecorator;
import dev.vality.adapter.flow.lib.handler.callback.PaymentCallbackHandler;
-import dev.vality.adapter.flow.lib.handler.callback.RecurrentTokenCallbackHandler;
import dev.vality.adapter.flow.lib.serde.ParametersDeserializer;
import dev.vality.adapter.flow.lib.serde.ParametersSerializer;
import dev.vality.adapter.flow.lib.serde.TemporaryContextDeserializer;
@@ -24,12 +20,13 @@
import dev.vality.adapter.flow.lib.service.*;
import dev.vality.adapter.flow.lib.service.factory.IntentResultFactory;
import dev.vality.adapter.flow.lib.service.factory.SimpleIntentResultFactory;
-import dev.vality.adapter.flow.lib.service.factory.SimpleRecurrentIntentResultFactory;
import dev.vality.adapter.flow.lib.utils.AdapterProperties;
import dev.vality.adapter.flow.lib.utils.TimerProperties;
import dev.vality.adapter.flow.lib.validator.AdapterConfigurationValidator;
import dev.vality.bender.BenderSrv;
-import dev.vality.damsel.proxy_provider.*;
+import dev.vality.damsel.proxy_provider.PaymentContext;
+import dev.vality.damsel.proxy_provider.PaymentProxyResult;
+import dev.vality.damsel.proxy_provider.ProviderProxySrv;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -76,16 +73,6 @@ public PaymentCallbackHandler paymentCallbackHandler(TemporaryContextDeserialize
);
}
- @Bean
- public RecurrentTokenCallbackHandler recurrentTokenCallbackHandler(
- TemporaryContextDeserializer adapterDeserializer,
- TemporaryContextSerializer temporaryContextSerializer,
- TemporaryContextService temporaryContextService) {
- return new RecurrentTokenCallbackHandler(adapterDeserializer,
- temporaryContextSerializer,
- temporaryContextService);
- }
-
@Bean
public CardHolderNamesService cardHolderNamesService(AdapterProperties properties) throws IOException {
return new CardHolderNamesService(properties);
@@ -123,37 +110,11 @@ public AdapterProperties adapterProperties() {
return adapterProperties;
}
- @Bean
- public RecCtxToEntryModelConverter recCtxToEntryModelConverter(CdsStorageClient cdsStorageClient,
- TemporaryContextDeserializer adapterDeserializer,
- IdGenerator idGenerator,
- TemporaryContextService temporaryContextService,
- CardDataServiceWithHolderNamesImpl cardDataService) {
- return new RecCtxToEntryModelConverter(adapterDeserializer,
- cdsStorageClient,
- idGenerator,
- temporaryContextService,
- cardDataService);
- }
-
@Bean
public ExitStateModelToTemporaryContextConverter exitStateModelToTemporaryContextConverter() {
return new ExitStateModelToTemporaryContextConverter();
}
- @Bean
- public ExitModelToRecTokenProxyResultConverter exitModelToRecTokenProxyResultConverter(
- SimpleRecurrentIntentResultFactory recurrentIntentResultFactory,
- TemporaryContextSerializer temporaryContextSerializer,
- RecurrentResultIntentResolver recurrentResultIntentResolver,
- ExitStateModelToTemporaryContextConverter exitStateModelToTemporaryContextConverter) {
- return new ExitModelToRecTokenProxyResultConverter(recurrentIntentResultFactory,
- temporaryContextSerializer,
- recurrentResultIntentResolver,
- exitStateModelToTemporaryContextConverter
- );
- }
-
@Bean
public ErrorMapping errorMapping() {
return new ErrorMapping("", List.of());
@@ -205,15 +166,11 @@ public EntryModelToBaseRequestModelConverter entryModelToBaseRequestModelConvert
@Bean
public ProviderProxySrv.Iface serverHandlerLogDecorator(
PaymentCallbackHandler paymentCallbackHandler,
- RecurrentTokenCallbackHandler recurrentTokenCallbackHandler,
ServerFlowHandler serverFlowHandler,
- ServerFlowHandler generateTokenFlowHandler,
AdapterConfigurationValidator paymentContextValidator) {
return new ServerHandlerLogDecorator(new ProxyProviderServiceImpl(
paymentCallbackHandler,
- recurrentTokenCallbackHandler,
serverFlowHandler,
- generateTokenFlowHandler,
paymentContextValidator
));
}
@@ -236,16 +193,4 @@ public SimpleIntentResultFactory intentResultFactory(
parametersSerializer, pollingInfoService, errorMapping, exponentialBackOffPollingService);
}
- @Bean
- public SimpleRecurrentIntentResultFactory recurrentIntentResultFactory(
- TimerProperties timerProperties,
- CallbackUrlExtractor callbackUrlExtractor,
- TagManagementService tagManagementService,
- PollingInfoService pollingInfoService,
- ErrorMapping errorMapping,
- ExponentialBackOffPollingService exponentialBackOffPollingService) {
- return new SimpleRecurrentIntentResultFactory(timerProperties, callbackUrlExtractor, tagManagementService,
- pollingInfoService, errorMapping, exponentialBackOffPollingService);
- }
-
}
diff --git a/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/GenerateToken3ds1Test.java b/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/GenerateToken3ds1Test.java
deleted file mode 100644
index f577c4f..0000000
--- a/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/GenerateToken3ds1Test.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package dev.vality.adapter.flow.lib.flow.full.three.ds;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import dev.vality.adapter.flow.lib.constant.Status;
-import dev.vality.adapter.flow.lib.constant.Step;
-import dev.vality.adapter.flow.lib.flow.AbstractGenerateTokenTest;
-import dev.vality.adapter.flow.lib.flow.full.three.ds.config.FullThreeDsFlowConfig;
-import dev.vality.adapter.flow.lib.flow.utils.BeanUtils;
-import dev.vality.adapter.flow.lib.flow.utils.MockUtil;
-import dev.vality.adapter.flow.lib.model.BaseResponseModel;
-import dev.vality.damsel.proxy_provider.RecurrentTokenCallbackResult;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
-import org.apache.thrift.TException;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-import java.nio.ByteBuffer;
-import java.util.Date;
-import java.util.Map;
-
-import static dev.vality.adapter.flow.lib.flow.full.three.ds.ForwardRecurrentPaymentNon3dsTest.RECURRENT_TOKEN;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes = FullThreeDsFlowConfig.class)
-@TestPropertySource(properties = {"server.rest.port=8083",
- "error-mapping.file=classpath:fixture/errors.json",
- "service.secret.enabled=true"})
-public class GenerateToken3ds1Test extends AbstractGenerateTokenTest {
-
- @BeforeEach
- public void setUp() throws TException {
- MockitoAnnotations.openMocks(this);
- MockUtil.mockAllWithout3Ds(cdsStorageClient, benderClient);
-
- BaseResponseModel baseResponseModel = BeanUtils.createBaseResponseModel();
- baseResponseModel.setThreeDsData(BeanUtils.create3Ds1(baseResponseModel));
- baseResponseModel.setStatus(Status.NEED_REDIRECT);
-
- BaseResponseModel baseResponseModelRec = BeanUtils.createBaseResponseModel();
- baseResponseModelRec.setRecurrentToken(RECURRENT_TOKEN);
-
- Mockito.when(client.auth(any())).thenReturn(baseResponseModel);
- Mockito.when(client.pay(any())).thenReturn(baseResponseModel);
-
- Mockito.when(client.finish3ds(any())).thenReturn(baseResponseModelRec);
- Mockito.when(client.refund(any())).thenReturn(baseResponseModelRec);
- Mockito.when(client.capture(any())).thenReturn(baseResponseModelRec);
- }
-
- @Test
- public void testPaymentOneStage() throws TException, JsonProcessingException {
- // pay
- Map options = MockUtil.buildOptionsOneStage();
- testPayment(options);
- }
-
- @Test
- public void testPaymentTwoStage() throws TException, JsonProcessingException {
- // auth
- Map options = MockUtil.buildOptionsTwoStage();
- testPayment(options);
- }
-
- private void testPayment(Map options) throws TException, JsonProcessingException {
- RecurrentTokenContext paymentContext = MockUtil.buildRecurrentTokenContext(String.valueOf(new Date().getTime()),
- options);
- RecurrentTokenProxyResult paymentProxyResult = serverHandlerLogDecorator.generateToken(paymentContext);
- assertTrue(paymentProxyResult.getIntent().getSuspend().getUserInteraction().isSetRedirect());
- assertEquals(Step.FINISH_THREE_DS_V1,
- temporaryContextDeserializer.read(paymentProxyResult.getNextState()).getNextStep());
-
- ByteBuffer byteBuffer = BeanUtils.createParesBuffer("pares", "md");
- paymentContext.getTokenInfo().setTrx(paymentProxyResult.getTrx());
- paymentContext.getSession().setState(paymentProxyResult.getNextState());
- RecurrentTokenCallbackResult paymentCallbackResult = serverHandlerLogDecorator.handleRecurrentTokenCallback(
- byteBuffer,
- paymentContext);
-
- //finish three ds
- paymentProxyResult = checkSuccessFinishThreeDs(paymentContext, paymentProxyResult, paymentCallbackResult);
-
-
- //capture
- paymentProxyResult = checkSleepWithStatus(Step.REFUND, paymentContext, paymentProxyResult,
- paymentProxyResult.getNextState());
-
- //refund
- checkSuccessRefund(paymentContext, paymentProxyResult, paymentProxyResult.getNextState());
- }
-
-}
diff --git a/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/GenerateTokenNon3dsTest.java b/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/GenerateTokenNon3dsTest.java
deleted file mode 100644
index 997b0b2..0000000
--- a/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/GenerateTokenNon3dsTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package dev.vality.adapter.flow.lib.flow.full.three.ds;
-
-import dev.vality.adapter.flow.lib.constant.Step;
-import dev.vality.adapter.flow.lib.flow.AbstractGenerateTokenTest;
-import dev.vality.adapter.flow.lib.flow.full.three.ds.config.FullThreeDsFlowConfig;
-import dev.vality.adapter.flow.lib.flow.utils.BeanUtils;
-import dev.vality.adapter.flow.lib.flow.utils.MockUtil;
-import dev.vality.adapter.flow.lib.model.BaseResponseModel;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
-import org.apache.thrift.TException;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-import java.util.Date;
-import java.util.Map;
-
-import static dev.vality.adapter.flow.lib.flow.full.three.ds.ForwardRecurrentPaymentNon3dsTest.RECURRENT_TOKEN;
-import static org.mockito.ArgumentMatchers.any;
-
-@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes = FullThreeDsFlowConfig.class)
-@TestPropertySource(properties = {"server.rest.port=8083",
- "error-mapping.file=classpath:fixture/errors.json",
- "service.secret.enabled=true"})
-public class GenerateTokenNon3dsTest extends AbstractGenerateTokenTest {
-
- @BeforeEach
- public void setUp() throws TException {
- MockitoAnnotations.openMocks(this);
- MockUtil.mockAllWithout3Ds(cdsStorageClient, benderClient);
-
- BaseResponseModel baseResponseModel = BeanUtils.createBaseResponseModel();
- baseResponseModel.setRecurrentToken(RECURRENT_TOKEN);
-
- Mockito.when(client.auth(any())).thenReturn(baseResponseModel);
- Mockito.when(client.pay(any())).thenReturn(baseResponseModel);
- Mockito.when(client.capture(any())).thenReturn(baseResponseModel);
- Mockito.when(client.refund(any())).thenReturn(baseResponseModel);
- }
-
- @Test
- public void testPaymentOneStage() throws TException {
- // pay
- Map options = MockUtil.buildOptionsOneStage();
- testPayment(options);
- }
-
- @Test
- public void testPaymentTwoStage() throws TException {
- // auth
- Map options = MockUtil.buildOptionsTwoStage();
- testPayment(options);
- }
-
- private void testPayment(Map options) throws TException {
- RecurrentTokenContext paymentContext = MockUtil.buildRecurrentTokenContext(String.valueOf(new Date().getTime()),
- options);
- RecurrentTokenProxyResult paymentProxyResult = checkSuccessAuthOrPay(paymentContext);
-
- //capture
- paymentProxyResult = checkSleepWithStatus(Step.REFUND, paymentContext, paymentProxyResult,
- paymentProxyResult.getNextState());
-
- //refund
- checkSuccessRefund(paymentContext, paymentProxyResult, paymentProxyResult.getNextState());
- }
-}
diff --git a/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/config/FullThreeDsFlowConfig.java b/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/config/FullThreeDsFlowConfig.java
index f306f08..927d079 100644
--- a/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/config/FullThreeDsFlowConfig.java
+++ b/src/test/java/dev/vality/adapter/flow/lib/flow/full/three/ds/config/FullThreeDsFlowConfig.java
@@ -3,15 +3,11 @@
import dev.vality.adapter.flow.lib.client.RemoteClient;
import dev.vality.adapter.flow.lib.converter.base.EntryModelToBaseRequestModelConverter;
import dev.vality.adapter.flow.lib.converter.entry.CtxToEntryModelConverter;
-import dev.vality.adapter.flow.lib.converter.entry.RecCtxToEntryModelConverter;
import dev.vality.adapter.flow.lib.converter.exit.ExitModelToProxyResultConverter;
-import dev.vality.adapter.flow.lib.converter.exit.ExitModelToRecTokenProxyResultConverter;
-import dev.vality.adapter.flow.lib.flow.RecurrentResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.ResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.StepResolver;
import dev.vality.adapter.flow.lib.flow.full.FullThreeDsAllVersionsStepResolverImpl;
import dev.vality.adapter.flow.lib.flow.full.GenerateTokenFullThreeDsAllVersionsStepResolverImpl;
-import dev.vality.adapter.flow.lib.flow.full.GenerateTokenResultIntentResolverImpl;
import dev.vality.adapter.flow.lib.flow.full.ResultIntentResolverImpl;
import dev.vality.adapter.flow.lib.handler.CommonHandler;
import dev.vality.adapter.flow.lib.handler.ServerFlowHandler;
@@ -22,11 +18,8 @@
import dev.vality.adapter.flow.lib.model.ExitStateModel;
import dev.vality.adapter.flow.lib.processor.Processor;
import dev.vality.adapter.flow.lib.service.factory.SimpleIntentResultFactory;
-import dev.vality.adapter.flow.lib.service.factory.SimpleRecurrentIntentResultFactory;
import dev.vality.damsel.proxy_provider.PaymentContext;
import dev.vality.damsel.proxy_provider.PaymentProxyResult;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -61,28 +54,6 @@ public ServerFlowHandler serverFlowHandler(
exitModelToProxyResultConverter);
}
- @Bean
- public ServerFlowHandler generateTokenFlowHandler(
- RemoteClient client,
- EntryModelToBaseRequestModelConverter entryModelToBaseRequestModelConverter,
- Processor baseProcessor,
- StepResolver generateTokenFullThreeDsAllVersionsStepResolverImpl,
- RecCtxToEntryModelConverter recCtxToEntryStateModelConverter,
- ExitModelToRecTokenProxyResultConverter exitModelToRecTokenProxyResultConverter
- ) {
- return new ServerFlowHandlerImpl<>(
- getHandlers(client, entryModelToBaseRequestModelConverter, baseProcessor),
- generateTokenFullThreeDsAllVersionsStepResolverImpl,
- recCtxToEntryStateModelConverter,
- exitModelToRecTokenProxyResultConverter);
- }
-
- @Bean
- public RecurrentResultIntentResolver recurrentResultIntentResolver(
- SimpleRecurrentIntentResultFactory recurrentIntentResultFactory) {
- return new GenerateTokenResultIntentResolverImpl(recurrentIntentResultFactory);
- }
-
@Bean
public ResultIntentResolver resultIntentResolver(SimpleIntentResultFactory intentResultFactory) {
return new ResultIntentResolverImpl(intentResultFactory);
diff --git a/src/test/java/dev/vality/adapter/flow/lib/flow/qr/config/QrRedirectWithPollingDsFlowConfig.java b/src/test/java/dev/vality/adapter/flow/lib/flow/qr/config/QrRedirectWithPollingDsFlowConfig.java
index f2a4643..f83d2b1 100644
--- a/src/test/java/dev/vality/adapter/flow/lib/flow/qr/config/QrRedirectWithPollingDsFlowConfig.java
+++ b/src/test/java/dev/vality/adapter/flow/lib/flow/qr/config/QrRedirectWithPollingDsFlowConfig.java
@@ -5,12 +5,10 @@
import dev.vality.adapter.flow.lib.converter.base.EntryModelToBaseRequestModelConverter;
import dev.vality.adapter.flow.lib.converter.entry.CtxToEntryModelConverter;
import dev.vality.adapter.flow.lib.converter.exit.ExitModelToProxyResultConverter;
-import dev.vality.adapter.flow.lib.flow.RecurrentResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.ResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.StepResolver;
import dev.vality.adapter.flow.lib.flow.simple.SimpleRedirectWithPollingResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.simple.SimpleRedirectWithPollingStepResolverImpl;
-import dev.vality.adapter.flow.lib.flow.simple.UnsupportedGenerateTokenResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.simple.UnsupportedGenerateTokenStepResolverImpl;
import dev.vality.adapter.flow.lib.handler.CommonHandler;
import dev.vality.adapter.flow.lib.handler.ServerFlowHandler;
@@ -28,8 +26,6 @@
import dev.vality.adapter.flow.lib.utils.TimerProperties;
import dev.vality.damsel.proxy_provider.PaymentContext;
import dev.vality.damsel.proxy_provider.PaymentProxyResult;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
@@ -67,22 +63,11 @@ public Processor baseProcess
return new RetryProcessor(qrDisplayProcessor);
}
- @Bean
- public RecurrentResultIntentResolver recurrentResultIntentResolver() {
- return new UnsupportedGenerateTokenResultIntentResolver();
- }
-
@Bean
public ResultIntentResolver resultIntentResolver(IntentResultQrPaymentFactory intentResultFactory) {
return new SimpleRedirectWithPollingResultIntentResolver(intentResultFactory);
}
- @Bean
- public ServerFlowHandler generateTokenFlowHandler() {
- return new ServerFlowHandler<>() {
- };
- }
-
@Bean
public IntentResultQrPaymentFactory intentResultFactory(
TimerProperties timerProperties,
diff --git a/src/test/java/dev/vality/adapter/flow/lib/flow/simple/redirect/config/SimpleRedirectWithPollingDsFlowConfig.java b/src/test/java/dev/vality/adapter/flow/lib/flow/simple/redirect/config/SimpleRedirectWithPollingDsFlowConfig.java
index c21c58b..f4d1474 100644
--- a/src/test/java/dev/vality/adapter/flow/lib/flow/simple/redirect/config/SimpleRedirectWithPollingDsFlowConfig.java
+++ b/src/test/java/dev/vality/adapter/flow/lib/flow/simple/redirect/config/SimpleRedirectWithPollingDsFlowConfig.java
@@ -3,14 +3,10 @@
import dev.vality.adapter.flow.lib.client.RemoteClient;
import dev.vality.adapter.flow.lib.converter.base.EntryModelToBaseRequestModelConverter;
import dev.vality.adapter.flow.lib.converter.entry.CtxToEntryModelConverter;
-import dev.vality.adapter.flow.lib.converter.entry.RecCtxToEntryModelConverter;
import dev.vality.adapter.flow.lib.converter.exit.ExitModelToProxyResultConverter;
-import dev.vality.adapter.flow.lib.converter.exit.ExitModelToRecTokenProxyResultConverter;
-import dev.vality.adapter.flow.lib.flow.RecurrentResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.ResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.StepResolver;
import dev.vality.adapter.flow.lib.flow.simple.GenerateTokenSimpleRedirectWithPollingStepResolverImpl;
-import dev.vality.adapter.flow.lib.flow.simple.SimpleRedirectGenerateTokenResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.simple.SimpleRedirectWithPollingResultIntentResolver;
import dev.vality.adapter.flow.lib.flow.simple.SimpleRedirectWithPollingStepResolverImpl;
import dev.vality.adapter.flow.lib.handler.CommonHandler;
@@ -22,11 +18,8 @@
import dev.vality.adapter.flow.lib.model.ExitStateModel;
import dev.vality.adapter.flow.lib.processor.Processor;
import dev.vality.adapter.flow.lib.service.factory.SimpleIntentResultFactory;
-import dev.vality.adapter.flow.lib.service.factory.SimpleRecurrentIntentResultFactory;
import dev.vality.damsel.proxy_provider.PaymentContext;
import dev.vality.damsel.proxy_provider.PaymentProxyResult;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -54,32 +47,11 @@ public ServerFlowHandler serverFlowHandler(
exitModelToProxyResultConverter);
}
- @Bean
- public RecurrentResultIntentResolver recurrentResultIntentResolver(
- SimpleRecurrentIntentResultFactory recurrentIntentResultFactory) {
- return new SimpleRedirectGenerateTokenResultIntentResolver(recurrentIntentResultFactory);
- }
-
@Bean
public ResultIntentResolver resultIntentResolver(SimpleIntentResultFactory intentResultFactory) {
return new SimpleRedirectWithPollingResultIntentResolver(intentResultFactory);
}
- @Bean
- public ServerFlowHandler generateTokenFlowHandler(
- RemoteClient client,
- EntryModelToBaseRequestModelConverter entryModelToBaseRequestModelConverter,
- Processor baseProcessor,
- StepResolver generateTokenStepResolverImpl,
- RecCtxToEntryModelConverter recCtxToEntryStateModelConverter,
- ExitModelToRecTokenProxyResultConverter exitModelToRecTokenProxyResultConverter) {
- return new ServerFlowHandlerImpl<>(
- getHandlers(client, entryModelToBaseRequestModelConverter, baseProcessor),
- generateTokenStepResolverImpl,
- recCtxToEntryStateModelConverter,
- exitModelToRecTokenProxyResultConverter);
- }
-
private List> getHandlers(
RemoteClient client,
EntryModelToBaseRequestModelConverter entryModelToBaseRequestModelConverter,
diff --git a/src/test/java/dev/vality/adapter/flow/lib/flow/utils/MockUtil.java b/src/test/java/dev/vality/adapter/flow/lib/flow/utils/MockUtil.java
index c2832e3..352f163 100644
--- a/src/test/java/dev/vality/adapter/flow/lib/flow/utils/MockUtil.java
+++ b/src/test/java/dev/vality/adapter/flow/lib/flow/utils/MockUtil.java
@@ -85,12 +85,6 @@ private static void mockCardData(int expMonthNon3ds,
String cardholderName,
String panSuccessNon3ds,
CdsStorageClient cdsStorageClient) {
- doAnswer((Answer) invocationOnMock -> CardDataProxyModel.builder()
- .expMonth((byte) expMonthNon3ds)
- .expYear((short) expYearNon3ds)
- .cardholderName(cardholderName)
- .pan(panSuccessNon3ds)
- .build()).when(cdsStorageClient).getCardData(any(RecurrentTokenContext.class));
doAnswer((Answer) invocation ->
new CardData()
.setExpDate(new ExpDate()
@@ -126,9 +120,6 @@ public static void mock3ds2SimpleFlowSessionData(CdsStorageClient cdsStorageClie
}
private static void mockCvv(String cvvNon3ds, CdsStorageClient cdsStorageClient) {
- doAnswer((Answer) invocation ->
- new SessionData(AuthData.card_security_code(new CardSecurityCode(cvvNon3ds))))
- .when(cdsStorageClient).getSessionData(any(RecurrentTokenContext.class));
doAnswer((Answer) invocation ->
new SessionData(AuthData.card_security_code(new CardSecurityCode(cvvNon3ds))))
.when(cdsStorageClient).getSessionData(any(PaymentContext.class));
@@ -237,26 +228,4 @@ public static PaymentContext buildRecurrentPaymentContext(String invoiceId, Stri
.setRecToken(token)));
return paymentContext;
}
-
- public static RecurrentTokenContext buildRecurrentTokenContext(String recurrentId, Map options) {
- return new RecurrentTokenContext()
- .setSession(new RecurrentTokenSession())
- .setTokenInfo(new RecurrentTokenInfo()
- .setPaymentTool(new RecurrentPaymentTool()
- .setId(recurrentId)
- .setCreatedAt("2016-03-22T06:12:27Z")
- .setPaymentResource(new DisposablePaymentResource()
- .setPaymentTool(PaymentTool.bank_card(new BankCard()
- .setToken("kektoken")
- .setBin("1234")
- .setExpDate(new BankCardExpDate()
- .setMonth((byte) EXP_MONTH_NON3DS)
- .setYear((short) EXP_YEAR_NON3DS)))))
- .setMinimalPaymentCost(new Cash()
- .setAmount(1000)
- .setCurrency(new Currency()
- .setSymbolicCode("RUB")
- .setNumericCode((short) 643)))))
- .setOptions(options);
- }
}
diff --git a/src/test/java/dev/vality/adapter/flow/lib/service/CardDataServiceWithHolderNamesImplTest.java b/src/test/java/dev/vality/adapter/flow/lib/service/CardDataServiceWithHolderNamesImplTest.java
index 8a37e34..09aad85 100644
--- a/src/test/java/dev/vality/adapter/flow/lib/service/CardDataServiceWithHolderNamesImplTest.java
+++ b/src/test/java/dev/vality/adapter/flow/lib/service/CardDataServiceWithHolderNamesImplTest.java
@@ -8,7 +8,6 @@
import dev.vality.damsel.domain.BankCard;
import dev.vality.damsel.domain.BankCardExpDate;
import dev.vality.damsel.proxy_provider.PaymentContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
import org.apache.thrift.TException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -67,28 +66,6 @@ void getCardDataProxyModel() {
Assertions.assertNotEquals(TEST_1, cardDataProxyModel.getCardholderName());
}
- @Test
- void testGetCardDataProxyModel() {
- CardDataProxyModel cardDataProxyModel = cardDataServiceWithHolderNames.getCardDataProxyModel(
- new RecurrentTokenContext()
- .setOptions(Map.of(OptionFields.CARD_HOLDER_FROM_FILE.name(), "true")),
- new CardData(),
- new BankCard()
- .setToken("test")
- .setExpDate(new BankCardExpDate()));
-
- Assertions.assertEquals(TEST_1, cardDataProxyModel.getCardholderName());
-
- cardDataProxyModel = cardDataServiceWithHolderNames.getCardDataProxyModel(
- new RecurrentTokenContext()
- .setOptions(Map.of()),
- new CardData(),
- new BankCard().setToken("test")
- .setExpDate(new BankCardExpDate()));
-
- Assertions.assertNotEquals(TEST_1, cardDataProxyModel.getCardholderName());
- }
-
@Test
void getCardDataProxyModelFromCds() {
CardDataProxyModel cardDataProxyModel = cardDataServiceWithHolderNames.getCardDataProxyModelFromCds(