From 9422d6d51fafa27a0cc4e052648def57f614c522 Mon Sep 17 00:00:00 2001 From: Angel Botev Date: Thu, 25 Jul 2019 17:51:00 +0300 Subject: [PATCH] NY-7892_publish_kafka_event - bump version and move logic in AccountCreator; Signed-off-by: Angel Botev --- charts/account-service/Chart.yaml | 2 +- releases/staging/account-service.yaml | 2 +- .../account/services/AccountServiceImpl.java | 17 +--------------- .../decomposition/AccountCreator.java | 20 ++++++++++++++++++- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/charts/account-service/Chart.yaml b/charts/account-service/Chart.yaml index 5f041fe..0d67982 100644 --- a/charts/account-service/Chart.yaml +++ b/charts/account-service/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: "1.0" description: Deployment of the nynja account service. name: account-service -version: 0.1.8 +version: 0.1.9 diff --git a/releases/staging/account-service.yaml b/releases/staging/account-service.yaml index 913f070..c4341b6 100644 --- a/releases/staging/account-service.yaml +++ b/releases/staging/account-service.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: account-service - version: 0.1.8 + version: 0.1.9 values: replicaCount: 2 diff --git a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java index 7d0da1a..457c784 100644 --- a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java +++ b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java @@ -55,9 +55,6 @@ import biz.nynja.account.grpc.StatusResponse; import biz.nynja.account.grpc.UpdateAccountRequest; import biz.nynja.account.grpc.UpdateAuthenticationProviderRequest; import biz.nynja.account.grpc.UpdateSearchableOptionRequest; -import biz.nynja.account.kafka.Constants; -import biz.nynja.account.kafka.UserEventsMessageTemplate; -import biz.nynja.account.kafka.UserEventsProducer; import biz.nynja.account.models.Account; import biz.nynja.account.models.AccountByProfileId; import biz.nynja.account.models.AccountByQrCode; @@ -110,7 +107,6 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas private final PermissionsValidator permissionsValidator; private final ProfileDataConfiguration profileDataConfiguration; private final AccessPointService accessPointService; - private final UserEventsProducer userEventsProducer; public AccountServiceImpl(AccountRepositoryAdditional accountRepositoryAdditional, ProfileRepository profileRepository, @@ -119,8 +115,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas AccountByUsernameRepository accountByUsernameRepository, AccountProvider accountProvider, AccountByProfileIdRepository accountByProfileIdRepository, PhoneNumberNormalizer phoneNumberNormalizer, AccountCreator accountCreator, ProfileProvider profileProvider, PermissionsValidator permissionsValidator, - ProfileDataConfiguration profileDataConfiguration, AccessPointService accessPointService, - UserEventsProducer userEventsProducer) { + ProfileDataConfiguration profileDataConfiguration, AccessPointService accessPointService) { this.accountRepositoryAdditional = accountRepositoryAdditional; this.profileRepository = profileRepository; this.profileByAutheticationProviderRepository = profileByAutheticationProviderRepository; @@ -134,7 +129,6 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas this.permissionsValidator = permissionsValidator; this.profileDataConfiguration = profileDataConfiguration; this.accessPointService = accessPointService; - this.userEventsProducer = userEventsProducer; } @Override @@ -505,15 +499,6 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas logger.debug("Complete pending account creation...: {} ...", request); AccountResponse response = accountCreator.retrieveCompletePendingAccountResponse(request); - // send event for new user to Kafka - try { - userEventsProducer.sendKafkaMessage(new UserEventsMessageTemplate(response.getAccountDetails().getAccountId(), - Constants.EventType.SIGN_UP, "")); - }catch (Exception e) { - logger.error("Error sending event to Kafka for account id {}", response.getAccountDetails().getAccountId()); - logger.debug("Error sending event to Kafka for account id {}, {}", response.getAccountDetails().getAccountId(), - e.getMessage()); - } logger.info("SUCCESS: Completed pending account creation for account ID {}.", request.getAccountId()); responseObserver.onNext(response); 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 59a3347..1af73ba 100644 --- a/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java +++ b/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java @@ -20,6 +20,9 @@ import biz.nynja.account.grpc.CreatePendingAccountRequest; import biz.nynja.account.grpc.CreatePendingAccountResponse; import biz.nynja.account.grpc.ErrorResponse; 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.Role; import biz.nynja.account.models.Account; import biz.nynja.account.models.AuthenticationProvider; @@ -38,12 +41,15 @@ public class AccountCreator { private final PendingAccountRepository pendingAccountRepository; private final AccountRepositoryAdditional accountRepositoryAdditional; private final PhoneNumberNormalizer phoneNumberNormalizer; + private final UserEventsProducer userEventsProducer; public AccountCreator(PendingAccountRepository pendingAccountRepository, - AccountRepositoryAdditional accountRepositoryAdditional, PhoneNumberNormalizer phoneNumberNormalizer) { + AccountRepositoryAdditional accountRepositoryAdditional, PhoneNumberNormalizer phoneNumberNormalizer, + UserEventsProducer userEventsProducer) { this.pendingAccountRepository = pendingAccountRepository; this.accountRepositoryAdditional = accountRepositoryAdditional; this.phoneNumberNormalizer = phoneNumberNormalizer; + this.userEventsProducer = userEventsProducer; } /** @@ -159,6 +165,8 @@ public class AccountCreator { logger.debug("Account \"{}\" saved into the DB", createdAccount); AccountDetails details = createdAccount.toProto(); logger.debug("Account: \"{}\" created successfully.", response); + logger.debug("Send event for new account to Kafka."); + sendEventToKafka(details.getAccountId()); return AccountResponse.newBuilder().setAccountDetails(details).build(); } } @@ -191,4 +199,14 @@ public class AccountCreator { logger.error(logMessage, logValue); return newBuilder.setError(ErrorResponse.newBuilder().setCause(cause).setMessage(errorMessage)).build(); } + + private void sendEventToKafka(String accountId) { + // send event for new user to Kafka + try { + userEventsProducer.sendKafkaMessage(new UserEventsMessageTemplate(accountId, Constants.EventType.SIGN_UP, "")); + }catch (Exception e) { + logger.error("Error sending event to Kafka for account id {}", accountId); + logger.debug("Error sending event to Kafka for account id {}, {}", accountId, e.getMessage()); + } + } } -- GitLab