diff --git a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java index 457c7841b693d981ebf92951980815dc5ca4e339..63e4580a02a70c981f4f9815736ec7c51c91489e 100644 --- a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java +++ b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java @@ -479,12 +479,14 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (cause.isPresent()) { response = CreatePendingAccountResponse.newBuilder() .setError(ErrorResponse.newBuilder().setCause(cause.get())).build(); + logger.info("ERROR: Creating pending account for provider {} and accoutn Id {}.", + request.getAuthenticationProvider(), response.getPendingAccountDetails().getAccountId()); } else { response = accountCreator.retrieveCreatePendingAccountResponse(request); + logger.info("SUCCESS: Created pending account for provider {} and accoutn Id {}.", + request.getAuthenticationProvider(), response.getPendingAccountDetails().getAccountId()); } - logger.info("SUCCESS: Created pending account for provider {} and accoutn Id {}.", - request.getAuthenticationProvider(), response.getPendingAccountDetails().getAccountId()); responseObserver.onNext(response); responseObserver.onCompleted(); } @@ -495,12 +497,12 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas public void completePendingAccountCreation(CompletePendingAccountCreationRequest request, StreamObserver responseObserver) { - logger.info("Complete pending account creation for account id {} ...", request.getAccountId()); + logger.info("Complete pending account creation for account id {} and username {} ...", request.getAccountId(), + request.getUsername()); logger.debug("Complete pending account creation...: {} ...", request); AccountResponse response = accountCreator.retrieveCompletePendingAccountResponse(request); - logger.info("SUCCESS: Completed pending account creation for account ID {}.", request.getAccountId()); responseObserver.onNext(response); responseObserver.onCompleted(); } @@ -1169,7 +1171,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas @Permitted(role = RoleConstants.AUTH_SERVICE) public void getAccountByLoginOption(AuthenticationProviderRequest request, StreamObserver responseObserver) { - logger.info("Getting account by login option: {}:{} ", request.getAuthenticationType(), + logger.info("Getting account by login option: {} - {} ", request.getAuthenticationType(), request.getAuthenticationIdentifier()); Validation validation = validateGetAccountByLoginOptionRequest(request); if (validation.hasErrors()) { @@ -1191,7 +1193,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas return; } logAndBuildGrpcAccountResponse(responseObserver, AccountResponse.newBuilder(), - "Account not found for login option: " + request.getAuthenticationIdentifier() + ":" + "Account not found for login option: " + request.getAuthenticationType() + ":" + request.getAuthenticationIdentifier(), "", Cause.ACCOUNT_NOT_FOUND, "Account not found"); } else { diff --git a/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java b/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java index 1af73ba703e2c3bdc35e70c494c7a97d3eb63bf5..cc374ba508ba1f0684ba803dcc1544f874c9e59a 100644 --- a/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java +++ b/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java @@ -159,7 +159,7 @@ public class AccountCreator { if (createdAccount == null) { return logAndBuildGrpcAccountResponse(AccountResponse.newBuilder(), - "Error creating account with username: {}", request.getUsername(), Cause.ERROR_CREATING_ACCOUNT, + "Error creating account with account ID: {}", request.getAccountId(), Cause.ERROR_CREATING_ACCOUNT, "Failed to create account"); } else { logger.debug("Account \"{}\" saved into the DB", createdAccount); @@ -167,6 +167,7 @@ public class AccountCreator { logger.debug("Account: \"{}\" created successfully.", response); logger.debug("Send event for new account to Kafka."); sendEventToKafka(details.getAccountId()); + logger.info("SUCCESS: Completed pending account creation for account ID {}.", request.getAccountId()); return AccountResponse.newBuilder().setAccountDetails(details).build(); } } diff --git a/src/main/java/biz/nynja/account/validation/Validators.java b/src/main/java/biz/nynja/account/validation/Validators.java index 38ab7a885d258c918d05359dc3eb45e629633f72..388e89e88bc15e831f594ea751e2632462d51030 100644 --- a/src/main/java/biz/nynja/account/validation/Validators.java +++ b/src/main/java/biz/nynja/account/validation/Validators.java @@ -434,12 +434,20 @@ public class Validators { * 00359878123456 or : i.e :359878225840 */ public boolean isPhoneNumberValid(String rawPhoneNumber) { + String phoneNumber; + String countrySelector; String[] provider = rawPhoneNumber.split(":"); if (provider.length == 1) { // no country selector + try { + countrySelector = PhoneNumberUtils.getCountrySelector(provider[0]); + } catch (InvalidPhoneNumberException e) { + return false; + } phoneNumber = provider[0]; } else { + countrySelector = provider[0]; phoneNumber = provider[1]; } if (!phoneNumber.matches("^\\+?[\\d- ]+$")) { @@ -447,13 +455,6 @@ public class Validators { } phoneNumber = phoneNumber.replaceAll("^0*", "").replaceAll("[^\\d]", ""); - String countrySelector; - try { - countrySelector = PhoneNumberUtils.getCountrySelector(phoneNumber); - } catch (InvalidPhoneNumberException e) { - return false; - } - if (!isPhoneNumberValid(phoneNumber, countrySelector)) { return false; } diff --git a/src/test/java/biz/nynja/account/services/AccountServiceTests.java b/src/test/java/biz/nynja/account/services/AccountServiceTests.java index 95148ec480408fb89d39cf168f5b6f7687b5b4de..955277f747ad642b9e75a19407d50cf0e4fdcc9b 100644 --- a/src/test/java/biz/nynja/account/services/AccountServiceTests.java +++ b/src/test/java/biz/nynja/account/services/AccountServiceTests.java @@ -7,6 +7,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.verify; import java.util.ArrayList; @@ -62,6 +63,9 @@ import biz.nynja.account.grpc.DeleteContactInfoRequest; import biz.nynja.account.grpc.DeleteProfileRequest; import biz.nynja.account.grpc.EditContactInfoRequest; import biz.nynja.account.grpc.ErrorResponse.Cause; +import biz.nynja.account.kafka.Constants; +import biz.nynja.account.kafka.UserEventsMessageTemplate; +import biz.nynja.account.kafka.UserEventsProducer; import biz.nynja.account.grpc.GetByEmailRequest; import biz.nynja.account.grpc.GetByPhoneNumberRequest; import biz.nynja.account.grpc.GetByQrCodeRequest; @@ -238,6 +242,9 @@ public class AccountServiceTests extends GrpcServerTestBase { @MockBean private AccessPointService accessPointService; + @MockBean + private UserEventsProducer userEventsProducer; + private AccountServiceGrpc.AccountServiceBlockingStub accountServiceBlockingStub; private AccountServiceGrpc.AccountServiceBlockingStub searchServiceBlockingStub; @@ -557,6 +564,10 @@ public class AccountServiceTests extends GrpcServerTestBase { .completePendingAccountCreation(Mockito.any(CompletePendingAccountCreationRequest.class))) .willReturn(savedAccount); + doNothing().when(userEventsProducer) + .sendKafkaMessage(new UserEventsMessageTemplate(Util.ACCOUNT_ID.toString(), + Constants.EventType.SIGN_UP, "")); + final AccountResponse respose = accountServiceBlockingStub.completePendingAccountCreation(request); assertNotNull("Reply should not be null", respose); assertTrue(String.format("Reply should contain username '%s'", Util.USERNAME),