diff --git a/pom.xml b/pom.xml index 38b5337..59a2417 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ ${server.port} ${management.port} ${env.REGISTRY} 1.119-7d5622c - 1.108-0800fde + 1.121-c3e5076 0.12.6 1.681-7a97267 diff --git a/src/main/java/dev/vality/fraudbusters/api/configuration/FraudbustersConfig.java b/src/main/java/dev/vality/fraudbusters/api/configuration/FraudbustersConfig.java index 67dd059..341bb3a 100644 --- a/src/main/java/dev/vality/fraudbusters/api/configuration/FraudbustersConfig.java +++ b/src/main/java/dev/vality/fraudbusters/api/configuration/FraudbustersConfig.java @@ -1,5 +1,6 @@ package dev.vality.fraudbusters.api.configuration; +import dev.vality.damsel.fraudbusters.InspectorServiceSrv; import dev.vality.damsel.fraudbusters.PaymentServiceSrv; import dev.vality.damsel.proxy_inspector.InspectorProxySrv; import dev.vality.woody.thrift.impl.http.THSpawnClientBuilder; @@ -22,6 +23,15 @@ public PaymentServiceSrv.Iface paymentServiceSrv( .withAddress(resource.getURI()).build(PaymentServiceSrv.Iface.class); } + @Bean + public InspectorServiceSrv.Iface inspectorServiceSrv( + @Value("${fraudbusters.service.user.inspector.url}") Resource resource, + @Value("${fraudbusters.service.user.inspector.networkTimeout}") int networkTimeout) throws IOException { + return new THSpawnClientBuilder() + .withNetworkTimeout(networkTimeout) + .withAddress(resource.getURI()).build(InspectorServiceSrv.Iface.class); + } + @Bean public InspectorProxySrv.Iface proxyInspectorSrv( @Value("${fraudbusters.service.inspector.url}") Resource resource, diff --git a/src/main/java/dev/vality/fraudbusters/api/converter/ShopContextToMerchantConverter.java b/src/main/java/dev/vality/fraudbusters/api/converter/ShopContextToMerchantConverter.java index c2f4ca1..0352213 100644 --- a/src/main/java/dev/vality/fraudbusters/api/converter/ShopContextToMerchantConverter.java +++ b/src/main/java/dev/vality/fraudbusters/api/converter/ShopContextToMerchantConverter.java @@ -1,6 +1,6 @@ package dev.vality.fraudbusters.api.converter; -import dev.vality.damsel.proxy_inspector.ShopContext; +import dev.vality.damsel.fraudbusters.ShopContext; import dev.vality.swag.fraudbusters.model.Merchant; import dev.vality.swag.fraudbusters.model.Shop; import org.springframework.core.convert.converter.Converter; @@ -11,18 +11,10 @@ public class ShopContextToMerchantConverter implements Converter { - private static final String MOCK_UNUSED_DATA = "MOCK_UNUSED_DATA"; - @Override public InspectUserContext convert(UserInspectRequest request) { - ContactInfo userInfo = buildContactInfo(request.getCustomer()); + ClientInfo userInfo = buildContactInfo(request.getCustomer()); List shopContexts = Optional.ofNullable(request.getMerchants()) .orElse(Collections.emptyList()) .stream() @@ -35,38 +32,24 @@ public InspectUserContext convert(UserInspectRequest request) { .setShopList(shopContexts); } - private ContactInfo buildContactInfo(Customer customer) { + private ClientInfo buildContactInfo(Customer customer) { Contact contact = Optional.ofNullable(customer) .map(Customer::getContact) .orElseGet(Contact::new); - return new ContactInfo() + ClientInfo clientInfo = new ClientInfo(); + if (customer != null && customer.getDevice() != null) { + clientInfo.setFingerprint(customer.getDevice().getFingerprint()) + .setIp(customer.getDevice().getIp()); + } + return clientInfo .setEmail(contact.getEmail()) - .setPhoneNumber(contact.getPhone()); + .setPhone(contact.getPhone()); } private ShopContext buildShopContext(Merchant merchant) { - Party party = buildParty(merchant); - dev.vality.damsel.proxy_inspector.Shop shop = buildShop(merchant); return new ShopContext() - .setParty(party) - .setShop(shop); - } - - private Party buildParty(Merchant merchant) { - return new Party() - .setPartyRef(new PartyConfigRef() - .setId(merchant.getId())); + .setPartyId(merchant.getId()) + .setShopId(merchant.getShop().getId()); } - private dev.vality.damsel.proxy_inspector.Shop buildShop(Merchant merchant) { - dev.vality.swag.fraudbusters.model.Shop shop = merchant.getShop(); - return new dev.vality.damsel.proxy_inspector.Shop() - .setShopRef(new ShopConfigRef() - .setId(shop.getId())) - .setName(shop.getName()) - .setCategory(new Category() - .setName(shop.getCategory()) - .setDescription(MOCK_UNUSED_DATA)) - .setLocation(ShopLocation.url(shop.getLocation())); - } } diff --git a/src/main/java/dev/vality/fraudbusters/api/converter/WithdrawalsRequestToWithdrawalsConverter.java b/src/main/java/dev/vality/fraudbusters/api/converter/WithdrawalsRequestToWithdrawalsConverter.java index 6ed3f4e..6bdefea 100644 --- a/src/main/java/dev/vality/fraudbusters/api/converter/WithdrawalsRequestToWithdrawalsConverter.java +++ b/src/main/java/dev/vality/fraudbusters/api/converter/WithdrawalsRequestToWithdrawalsConverter.java @@ -39,7 +39,6 @@ private Withdrawal mapWithdrawal(dev.vality.swag.fraudbusters.model.Withdrawal i .setError(errorToInternalDtoConverter.convert(item.getError())) .setAccount(new Account() .setId(item.getAccount().getId()) - .setIdentity(UNKNOWN) .setCurrency(new CurrencyRef(item.getAccount().getCurrency()))) .setDestinationResource(paymentResourceToResourceConverter.convert(item.getPaymentResource())); } diff --git a/src/main/java/dev/vality/fraudbusters/api/resource/UserInspectorResource.java b/src/main/java/dev/vality/fraudbusters/api/resource/UserInspectorResource.java index eae5907..a2fd941 100644 --- a/src/main/java/dev/vality/fraudbusters/api/resource/UserInspectorResource.java +++ b/src/main/java/dev/vality/fraudbusters/api/resource/UserInspectorResource.java @@ -1,6 +1,6 @@ package dev.vality.fraudbusters.api.resource; -import dev.vality.damsel.proxy_inspector.InspectUserContext; +import dev.vality.damsel.fraudbusters.InspectUserContext; import dev.vality.fraudbusters.api.service.FraudbustersInspectorService; import dev.vality.swag.fraudbusters.api.InspectUserApi; import dev.vality.swag.fraudbusters.model.UserInspectRequest; diff --git a/src/main/java/dev/vality/fraudbusters/api/service/FraudbustersInspectorService.java b/src/main/java/dev/vality/fraudbusters/api/service/FraudbustersInspectorService.java index 5ee7394..61fa84e 100644 --- a/src/main/java/dev/vality/fraudbusters/api/service/FraudbustersInspectorService.java +++ b/src/main/java/dev/vality/fraudbusters/api/service/FraudbustersInspectorService.java @@ -1,7 +1,12 @@ package dev.vality.fraudbusters.api.service; import dev.vality.damsel.domain.RiskScore; -import dev.vality.damsel.proxy_inspector.*; +import dev.vality.damsel.fraudbusters.BlockedShops; +import dev.vality.damsel.fraudbusters.InspectUserContext; +import dev.vality.damsel.fraudbusters.InspectorServiceSrv; +import dev.vality.damsel.fraudbusters.ShopContext; +import dev.vality.damsel.proxy_inspector.Context; +import dev.vality.damsel.proxy_inspector.InspectorProxySrv; import dev.vality.fraudbusters.api.exceptions.RemoteInvocationException; import dev.vality.swag.fraudbusters.model.Merchant; import dev.vality.swag.fraudbusters.model.RiskScoreResult; @@ -16,6 +21,7 @@ public class FraudbustersInspectorService { private final InspectorProxySrv.Iface proxyInspectorSrv; + private final InspectorServiceSrv.Iface inspectorServiceSrv; private final Converter shopContextToMerchantConverter; public dev.vality.swag.fraudbusters.model.RiskScore inspectPayment(Context context) { @@ -31,7 +37,7 @@ public dev.vality.swag.fraudbusters.model.RiskScore inspectPayment(Context conte public UserInspectResult inspectUser(InspectUserContext context) { try { - BlockedShops blockedShops = proxyInspectorSrv.inspectUser(context); + BlockedShops blockedShops = inspectorServiceSrv.inspectUserShops(context); UserInspectResult result = new UserInspectResult(); if (blockedShops != null && blockedShops.getShopList() != null) { result.setBlockedMerchants(blockedShops.getShopList().stream() diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index f9e6fa5..e38a7ff 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -47,3 +47,6 @@ fraudbusters: inspector: url: http://localhost:8022 networkTimeout: 10000 + user.inspector: + url: http://localhost:8022 + networkTimeout: 10000 diff --git a/src/test/java/dev/vality/fraudbusters/api/converter/CustomerToInternalDtoConverterTest.java b/src/test/java/dev/vality/fraudbusters/api/converter/CustomerToInternalDtoConverterTest.java index 8c746cf..bdbc98a 100644 --- a/src/test/java/dev/vality/fraudbusters/api/converter/CustomerToInternalDtoConverterTest.java +++ b/src/test/java/dev/vality/fraudbusters/api/converter/CustomerToInternalDtoConverterTest.java @@ -19,8 +19,8 @@ void convert() throws TException { assertNotNull(clientInfo); clientInfo.validate(); - assertEquals(ApiBeanGenerator.EMAIL, clientInfo.getEmail()); - assertEquals(ApiBeanGenerator.FINGERPRINT, clientInfo.getFingerprint()); - assertEquals(ApiBeanGenerator.IP, clientInfo.getIp()); + assertEquals(ApiBeanGenerator.EMAIL, clientInfo.getEmail().get()); + assertEquals(ApiBeanGenerator.FINGERPRINT, clientInfo.getFingerprint().get()); + assertEquals(ApiBeanGenerator.IP, clientInfo.getIp().get()); } } diff --git a/src/test/java/dev/vality/fraudbusters/api/converter/ErrorToInternalDtoConverterTest.java b/src/test/java/dev/vality/fraudbusters/api/converter/ErrorToInternalDtoConverterTest.java index c946c6b..de2db8b 100644 --- a/src/test/java/dev/vality/fraudbusters/api/converter/ErrorToInternalDtoConverterTest.java +++ b/src/test/java/dev/vality/fraudbusters/api/converter/ErrorToInternalDtoConverterTest.java @@ -20,6 +20,6 @@ void convert() throws TException { error.validate(); assertEquals(ApiBeanGenerator.ERROR_CODE, error.getErrorCode()); - assertEquals(ApiBeanGenerator.ERROR_REASON, error.getErrorReason()); + assertEquals(ApiBeanGenerator.ERROR_REASON, error.getErrorReason().get()); } } diff --git a/src/test/java/dev/vality/fraudbusters/api/converter/FraudPaymentsRequestToFraudPaymentsConverterTest.java b/src/test/java/dev/vality/fraudbusters/api/converter/FraudPaymentsRequestToFraudPaymentsConverterTest.java index a378540..30aa648 100644 --- a/src/test/java/dev/vality/fraudbusters/api/converter/FraudPaymentsRequestToFraudPaymentsConverterTest.java +++ b/src/test/java/dev/vality/fraudbusters/api/converter/FraudPaymentsRequestToFraudPaymentsConverterTest.java @@ -27,9 +27,9 @@ void convert() { FraudPayment fraudPayment = fraudPayments.get(0); assertNotNull(fraudPayment); - assertEquals(ApiBeanGenerator.COMMENT, fraudPayment.getComment()); + assertEquals(ApiBeanGenerator.COMMENT, fraudPayment.getComment().get()); assertNotNull(fraudPayment.getEventTime()); assertEquals(ApiBeanGenerator.PAYMENT_ID, fraudPayment.getId()); - assertEquals(ApiBeanGenerator.TYPE, fraudPayment.getType()); + assertEquals(ApiBeanGenerator.TYPE, fraudPayment.getType().get()); } } diff --git a/src/test/java/dev/vality/fraudbusters/api/converter/PaymentsChangesRequestToPaymentsConverterTest.java b/src/test/java/dev/vality/fraudbusters/api/converter/PaymentsChangesRequestToPaymentsConverterTest.java index c71bff1..5ac49e0 100644 --- a/src/test/java/dev/vality/fraudbusters/api/converter/PaymentsChangesRequestToPaymentsConverterTest.java +++ b/src/test/java/dev/vality/fraudbusters/api/converter/PaymentsChangesRequestToPaymentsConverterTest.java @@ -54,7 +54,7 @@ void convert() { assertEquals(ApiBeanGenerator.ID, payment.getId()); assertNotNull(payment.getEventTime()); assertEquals(PaymentStatus.captured, payment.getStatus()); - assertFalse(payment.isMobile()); - assertTrue(payment.isRecurrent()); + assertFalse(payment.mobile); + assertTrue(payment.recurrent); } } diff --git a/src/test/java/dev/vality/fraudbusters/api/converter/ProviderToInternalDtoConverterTest.java b/src/test/java/dev/vality/fraudbusters/api/converter/ProviderToInternalDtoConverterTest.java index 921f9db..c765698 100644 --- a/src/test/java/dev/vality/fraudbusters/api/converter/ProviderToInternalDtoConverterTest.java +++ b/src/test/java/dev/vality/fraudbusters/api/converter/ProviderToInternalDtoConverterTest.java @@ -20,7 +20,7 @@ void convert() throws TException { providerInfo.validate(); assertEquals(ApiBeanGenerator.PROVIDER_ID, providerInfo.getProviderId()); - assertEquals(ApiBeanGenerator.RUS, providerInfo.getCountry()); + assertEquals(ApiBeanGenerator.RUS, providerInfo.getCountry().get()); assertEquals(ApiBeanGenerator.TERMINAL_ID, providerInfo.getTerminalId()); } }