From bd83339646f015239c4268934be1d4b369f5e867 Mon Sep 17 00:00:00 2001 From: sergeyPensov Date: Fri, 19 Oct 2018 17:03:57 +0300 Subject: [PATCH 1/5] Decompose Account data provider from Account service --- .../nynja/account/components/Validator.java | 6 +- .../account/services/AccountServiceImpl.java | 242 ++++++------------ .../decomposition/AccountsProvider.java | 87 +++++++ .../account/services/AccountServiceTests.java | 8 +- 4 files changed, 179 insertions(+), 164 deletions(-) create mode 100644 src/main/java/biz/nynja/account/services/decomposition/AccountsProvider.java diff --git a/src/main/java/biz/nynja/account/components/Validator.java b/src/main/java/biz/nynja/account/components/Validator.java index 8544c46..939a51a 100644 --- a/src/main/java/biz/nynja/account/components/Validator.java +++ b/src/main/java/biz/nynja/account/components/Validator.java @@ -122,7 +122,7 @@ public class Validator { return isValid; } - + public String getNormalizedPhoneNumber(String authenticationProvider) { String[] provider = authenticationProvider.split(":"); String country = provider[0]; @@ -134,7 +134,7 @@ public class Validator { String normalizedPhoneNumber = ""; try { PhoneNumber pn = phoneUtil.parse(phoneNumber, country); - normalizedPhoneNumber = Integer.toString(pn.getCountryCode()) + + normalizedPhoneNumber = Integer.toString(pn.getCountryCode()) + Long.toString(pn.getNationalNumber()); logger.info("libphone: Normalized phone number: " + normalizedPhoneNumber); } catch (NumberParseException e) { @@ -204,7 +204,7 @@ public class Validator { return isValid; } - boolean isValidUuid(String id) { + public boolean isValidUuid(String id) { return id.matches("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"); } diff --git a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java index fff5366..da2c060 100644 --- a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java +++ b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java @@ -1,59 +1,26 @@ /** - * Copyright (C) 2018 Nynja Inc. All rights reserved. + * Copyright (C) 2018 Nynja Inc. All rights reserved. */ package biz.nynja.account.services; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; - -import org.lognet.springboot.grpc.GRpcService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import biz.nynja.account.components.AccountServiceHelper; import biz.nynja.account.components.Validator; -import biz.nynja.account.grpc.AccountByAccountIdRequest; -import biz.nynja.account.grpc.AccountByAuthenticationProviderRequest; -import biz.nynja.account.grpc.AccountDetails; -import biz.nynja.account.grpc.AccountResponse; -import biz.nynja.account.grpc.AccountServiceGrpc; -import biz.nynja.account.grpc.AccountsByProfileIdRequest; -import biz.nynja.account.grpc.AccountsList; -import biz.nynja.account.grpc.AccountsResponse; -import biz.nynja.account.grpc.AddAuthenticationProviderRequest; -import biz.nynja.account.grpc.AuthProviderDetails; -import biz.nynja.account.grpc.AuthenticationType; -import biz.nynja.account.grpc.CompletePendingAccountCreationRequest; -import biz.nynja.account.grpc.CreateAccountRequest; -import biz.nynja.account.grpc.CreatePendingAccountRequest; -import biz.nynja.account.grpc.CreatePendingAccountResponse; -import biz.nynja.account.grpc.DeleteAccountRequest; -import biz.nynja.account.grpc.DeleteAuthenticationProviderRequest; -import biz.nynja.account.grpc.StatusResponse; -import biz.nynja.account.grpc.DeleteProfileRequest; -import biz.nynja.account.grpc.ErrorResponse; +import biz.nynja.account.grpc.*; import biz.nynja.account.grpc.ErrorResponse.Cause; import biz.nynja.account.models.Account; -import biz.nynja.account.models.AccountByProfileId; -import biz.nynja.account.models.AuthenticationProvider; -import biz.nynja.account.models.PendingAccount; -import biz.nynja.account.models.PendingAccountByAuthenticationProvider; -import biz.nynja.account.repositories.AccountByAuthenticationProviderRepository; -import biz.nynja.account.models.Profile; -import biz.nynja.account.models.ProfileByAuthenticationProvider; -import biz.nynja.account.repositories.AccountByProfileIdRepository; -import biz.nynja.account.repositories.AccountRepository; +import biz.nynja.account.models.*; import biz.nynja.account.repositories.AccountRepositoryAdditional; -import biz.nynja.account.repositories.PendingAccountByAuthenticationProviderRepository; import biz.nynja.account.repositories.PendingAccountRepository; import biz.nynja.account.repositories.ProfileByAuthenticationProviderRepository; import biz.nynja.account.repositories.ProfileRepository; -import biz.nynja.account.grpc.UpdateAccountRequest; -import biz.nynja.account.grpc.UpdateProfileRequest; -import biz.nynja.account.grpc.ProfileResponse; +import biz.nynja.account.services.decomposition.AccountsProvider; import io.grpc.stub.StreamObserver; +import org.lognet.springboot.grpc.GRpcService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Date; +import java.util.Optional; +import java.util.UUID; /** * gRPC Account service implementation.
@@ -66,35 +33,26 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas private static final Logger logger = LoggerFactory.getLogger(AccountServiceImpl.class); private static final byte MIN_NUMBER_OF_AUTH_PROVIDERS_IN_PROFILE = 1; - @Autowired - private AccountRepository accountRepository; - - @Autowired - private AccountByProfileIdRepository accountByProfileIdRepository; - - @Autowired - private AccountByAuthenticationProviderRepository accountByAuthenticationProviderRepository; - - @Autowired - private PendingAccountRepository pendingAccountRepository; - - @Autowired - private PendingAccountByAuthenticationProviderRepository pendingAccountByAuthenticationProviderRepository; - - @Autowired - private AccountRepositoryAdditional accountRepositoryAdditional; - - @Autowired - private ProfileRepository profileRepository; - - @Autowired - private ProfileByAuthenticationProviderRepository profileByAutheticationProviderRepository; - - @Autowired - private Validator validator; - - @Autowired - private AccountServiceHelper accountServiceHelper; + private final PendingAccountRepository pendingAccountRepository; + private final AccountRepositoryAdditional accountRepositoryAdditional; + private final ProfileRepository profileRepository; + private final ProfileByAuthenticationProviderRepository profileByAutheticationProviderRepository; + private final Validator validator; + private final AccountsProvider accountsProvider; + + public AccountServiceImpl(PendingAccountRepository pendingAccountRepository, + AccountRepositoryAdditional accountRepositoryAdditional, + ProfileRepository profileRepository, + ProfileByAuthenticationProviderRepository profileByAutheticationProviderRepository, + Validator validator, + AccountsProvider accountsProvider) { + this.pendingAccountRepository = pendingAccountRepository; + this.accountRepositoryAdditional = accountRepositoryAdditional; + this.profileRepository = profileRepository; + this.profileByAutheticationProviderRepository = profileByAutheticationProviderRepository; + this.validator = validator; + this.accountsProvider = accountsProvider; + } @Override public void createAccount(CreateAccountRequest request, StreamObserver responseObserver) { @@ -105,123 +63,81 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas @Override public void getAccountByAuthenticationProvider(AccountByAuthenticationProviderRequest request, - StreamObserver responseObserver) { + StreamObserver responseObserver) { logger.info("Getting account by authentication provider: {}", request); if (request.getAuthenticationTypeValue() == 0) { - responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_TYPE)).build()); - responseObserver.onCompleted(); + sendErrorMessageForAccountResponse(responseObserver, Cause.MISSING_AUTH_PROVIDER_TYPE); return; } if (request.getAuthenticationIdentifier() == null || request.getAuthenticationIdentifier().isEmpty()) { - responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_IDENTIFIER)).build()); - responseObserver.onCompleted(); + sendErrorMessageForAccountResponse(responseObserver, Cause.MISSING_AUTH_PROVIDER_IDENTIFIER); return; } - if (request.getAuthenticationType() == AuthenticationType.PHONE) { - // Get the normalized phone number from libphone - AccountByAuthenticationProviderRequest newRequest = AccountByAuthenticationProviderRequest.newBuilder() - .setAuthenticationType(request.getAuthenticationType()) - .setAuthenticationIdentifier(validator.getNormalizedPhoneNumber(request.getAuthenticationIdentifier())).build(); - request = newRequest; - } - - Account account = accountServiceHelper.getAccountByAuthenticationProviderHelper( - request.getAuthenticationIdentifier(), request.getAuthenticationType().toString()); - - if (account == null) { + Optional account = accountsProvider.getAccountByAuthenticationProvider(request); - logger.debug("No matching accounts found for authetntication provider {}: {}", - request.getAuthenticationType(), request.getAuthenticationIdentifier()); - responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ACCOUNT_NOT_FOUND)).build()); + if (!account.isPresent()) { + sendErrorMessageForAccountResponse(responseObserver, Cause.ACCOUNT_NOT_FOUND); + } else { + responseObserver.onNext(account.get()); responseObserver.onCompleted(); - return; - } + } - AccountResponse response = AccountResponse.newBuilder().setAccountDetails(account.toProto()).build(); - logger.debug("Found result for account by authentication provider {}: {}: \"{}\"", - request.getAuthenticationType(), request.getAuthenticationIdentifier(), response); - responseObserver.onNext(response); - responseObserver.onCompleted(); - return; } @Override public void getAllAccountsByProfileId(AccountsByProfileIdRequest request, - StreamObserver responseObserver) { + StreamObserver responseObserver) { logger.info("Getting accounts by profile id: {}", request.getProfileId()); if ((request.getProfileId() == null) || (request.getProfileId().isEmpty())) { - responseObserver.onNext(AccountsResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); - responseObserver.onCompleted(); + sendErrorMessageForAccountsResponse(responseObserver, Cause.MISSING_PROFILE_ID); return; } - - List listAccountsByProfileId = accountByProfileIdRepository - .findAllByProfileId(UUID.fromString(request.getProfileId())); - - List responseList = new ArrayList(); - - if (listAccountsByProfileId.size() == 0) { - responseObserver.onNext(AccountsResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ACCOUNT_NOT_FOUND)).build()); - responseObserver.onCompleted(); + if (!validator.isValidUuid(request.getProfileId())) { + sendErrorMessageForAccountsResponse(responseObserver, Cause.INVALID_PROFILE_ID); return; } + Optional accounts = accountsProvider.getAllAccountsByProfileId(request); - for (AccountByProfileId account : listAccountsByProfileId) { - responseList.add(account.toProto()); + if (!accounts.isPresent()) { + sendErrorMessageForAccountsResponse(responseObserver, Cause.ACCOUNT_NOT_FOUND); + } else { + responseObserver.onNext(accounts.get()); + responseObserver.onCompleted(); } - AccountsResponse response = AccountsResponse.newBuilder() - .setAccountsResponse(AccountsList.newBuilder().addAllAccountDetails(responseList)).build(); - - logger.debug("Returned response: \"{}\".", response); - - responseObserver.onNext(response); - responseObserver.onCompleted(); - return; } @Override public void getAccountByAccountId(AccountByAccountIdRequest request, - StreamObserver responseObserver) { + StreamObserver responseObserver) { logger.info("Getting accounts by account id: {}", request.getAccountId()); if ((request.getAccountId() == null) || (request.getAccountId().isEmpty())) { - responseObserver.onNext(AccountsResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_ACCOUNT_ID)).build()); - responseObserver.onCompleted(); + sendErrorMessageForAccountResponse(responseObserver, Cause.MISSING_ACCOUNT_ID); return; } - Account account = accountRepository.findByAccountId(UUID.fromString(request.getAccountId())); - - if (account.getAccountId() == null) { - responseObserver.onNext(AccountsResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ACCOUNT_NOT_FOUND)).build()); - responseObserver.onCompleted(); + if (!validator.isValidUuid(request.getAccountId())) { + sendErrorMessageForAccountResponse(responseObserver, Cause.INVALID_ACCOUNT_ID); return; } - AccountsResponse response = AccountsResponse.newBuilder() - .setAccountsResponse(AccountsList.newBuilder().addAccountDetails(account.toProto())).build(); - - logger.debug("Returned response: \"{}\".", response); + Optional account = accountsProvider.getAccountByAccountId(request); - responseObserver.onNext(response); - responseObserver.onCompleted(); - return; + if (!account.isPresent()) { + sendErrorMessageForAccountResponse(responseObserver, Cause.ACCOUNT_NOT_FOUND); + } else { + responseObserver.onNext(account.get()); + responseObserver.onCompleted(); + } } @Override public void createPendingAccount(CreatePendingAccountRequest request, - StreamObserver responseObserver) { + StreamObserver responseObserver) { logger.info("Creating pending account..."); logger.debug("Creating pending account: {} ...", request); @@ -292,7 +208,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas @Override public void completePendingAccountCreation(CompletePendingAccountCreationRequest request, - StreamObserver responseObserver) { + StreamObserver responseObserver) { logger.info("Complete pending account creation..."); logger.debug("Complete pending account creation...: {} ...", request); @@ -362,7 +278,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas } logger.debug("Profile \"{}\" updated in the DB", updatedProfile.toString()); logger.debug("Profile: \"{}\" updated successfully.", updatedProfile); - ProfileResponse response = ProfileResponse.newBuilder().setProfileDetails (updatedProfile.toProto()) + ProfileResponse response = ProfileResponse.newBuilder().setProfileDetails(updatedProfile.toProto()) .build(); responseObserver.onNext(response); responseObserver.onCompleted(); @@ -465,10 +381,10 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas @Override public void addAuthenticationProviderToProfile(AddAuthenticationProviderRequest request, - StreamObserver responseObserver) { - logger.info("Adding authentication provider to profile requested."); + StreamObserver responseObserver) { + logger.info("Adding authentication provider to profile requested."); logger.debug("Adding authentication provider to profile requested: {}", request); - if ((request.getProfileId() == null) || (request.getProfileId().isEmpty())) { + if ((request.getProfileId() == null) || (request.getProfileId().isEmpty())) { responseObserver.onNext(StatusResponse.newBuilder() .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); responseObserver.onCompleted(); @@ -487,14 +403,14 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas responseObserver.onCompleted(); return; } - Cause cause = validator.validateAddAuthenticationProviderRequest(request); + Cause cause = validator.validateAddAuthenticationProviderRequest(request); if (cause != null) { responseObserver .onNext(StatusResponse.newBuilder().setError(ErrorResponse.newBuilder().setCause(cause)).build()); responseObserver.onCompleted(); return; } - + if (request.getAuthenticationProvider().getAuthenticationType() == AuthenticationType.PHONE) { // Get the normalized phone number from libphone AuthProviderDetails newAuthProviderDetails = AuthProviderDetails.newBuilder() @@ -507,8 +423,8 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas request = newRequest; } - - // Make sure that the requested profile id for update exists in DB. + + // Make sure that the requested profile id for update exists in DB. Profile profile = profileRepository.findByProfileId(UUID.fromString(request.getProfileId())); if (profile == null) { logger.error("Profile id {} missing in DB.", request.getProfileId()); @@ -552,7 +468,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas @Override public void deleteAuthenticationProviderFromProfile(DeleteAuthenticationProviderRequest request, - StreamObserver responseObserver) { + StreamObserver responseObserver) { logger.info("Deleting Authentication Provider from profile: {}", request); if ((request.getProfileId() == null) || (request.getProfileId().isEmpty())) { @@ -600,7 +516,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (profile.getAuthenticationProviders().size() < MIN_NUMBER_OF_AUTH_PROVIDERS_IN_PROFILE) { logger.error( "Error deleting authentication provider {} from profile with id {}. Check the number of authentication providers.", - request.getAuthenticationProvider(), request.getProfileId()); + request.getAuthenticationProvider(), request.getProfileId()); responseObserver.onNext(StatusResponse.newBuilder() .setError(ErrorResponse.newBuilder().setCause(Cause.ERROR_DELETING_AUTH_PROVIDER)).build()); responseObserver.onCompleted(); @@ -626,4 +542,16 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas responseObserver.onCompleted(); return; } + + private void sendErrorMessageForAccountsResponse(StreamObserver responseObserver, ErrorResponse.Cause cause) { + responseObserver.onNext(AccountsResponse.newBuilder() + .setError(ErrorResponse.newBuilder().setCause(cause)).build()); + responseObserver.onCompleted(); + } + + private void sendErrorMessageForAccountResponse(StreamObserver responseObserver, ErrorResponse.Cause cause) { + responseObserver.onNext(AccountResponse.newBuilder() + .setError(ErrorResponse.newBuilder().setCause(cause)).build()); + responseObserver.onCompleted(); + } } \ No newline at end of file diff --git a/src/main/java/biz/nynja/account/services/decomposition/AccountsProvider.java b/src/main/java/biz/nynja/account/services/decomposition/AccountsProvider.java new file mode 100644 index 0000000..07dae8d --- /dev/null +++ b/src/main/java/biz/nynja/account/services/decomposition/AccountsProvider.java @@ -0,0 +1,87 @@ +package biz.nynja.account.services.decomposition; + +import biz.nynja.account.components.AccountServiceHelper; +import biz.nynja.account.components.Validator; +import biz.nynja.account.grpc.*; +import biz.nynja.account.models.Account; +import biz.nynja.account.models.AccountByProfileId; +import biz.nynja.account.repositories.AccountByProfileIdRepository; +import biz.nynja.account.repositories.AccountRepository; +import biz.nynja.account.services.AccountServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; +import java.util.stream.Collectors; + +@Service +public class AccountsProvider { + + private static final Logger logger = LoggerFactory.getLogger(AccountServiceImpl.class); + + private final AccountRepository accountRepository; + private final AccountByProfileIdRepository accountByProfileIdRepository; + private final Validator validator; + private final AccountServiceHelper accountServiceHelper; + + public AccountsProvider(AccountRepository accountRepository, + AccountByProfileIdRepository accountByProfileIdRepository, + Validator validator, + AccountServiceHelper accountServiceHelper) { + this.accountRepository = accountRepository; + this.accountByProfileIdRepository = accountByProfileIdRepository; + this.validator = validator; + this.accountServiceHelper = accountServiceHelper; + } + + public Optional getAccountByAuthenticationProvider(AccountByAuthenticationProviderRequest request) { + + if (request.getAuthenticationType() == AuthenticationType.PHONE) { + request = normalizedPhoneNumber(request); + } + Account account = accountServiceHelper.getAccountByAuthenticationProviderHelper( + request.getAuthenticationIdentifier(), request.getAuthenticationType().toString()); + if (account == null) { + logger.debug("No matching accounts found for authetntication provider {}: {}", + request.getAuthenticationType(), request.getAuthenticationIdentifier()); + return Optional.empty(); + } + AccountResponse response = AccountResponse.newBuilder().setAccountDetails(account.toProto()).build(); + logger.debug("Found result for account by authentication provider {}: {}: \"{}\"", + request.getAuthenticationType(), request.getAuthenticationIdentifier(), response); + return Optional.of(response); + } + + public Optional getAllAccountsByProfileId(AccountsByProfileIdRequest request) { + List listAccountsByProfileId = accountByProfileIdRepository + .findAllByProfileId(UUID.fromString(request.getProfileId())); + if (listAccountsByProfileId.size() == 0) { + return Optional.empty(); + } + List responseList = listAccountsByProfileId.stream().map(AccountByProfileId::toProto).collect(Collectors.toList()); + AccountsResponse response = AccountsResponse.newBuilder() + .setAccountsResponse(AccountsList.newBuilder().addAllAccountDetails(responseList)).build(); + logger.debug("Returned response: \"{}\".", response); + return Optional.of(response); + } + + public Optional getAccountByAccountId(AccountByAccountIdRequest request) { + logger.info("Getting accounts by account id: {}", request.getAccountId()); + Account account = accountRepository.findByAccountId(UUID.fromString(request.getAccountId())); + if (account == null) { + return Optional.empty(); + } + AccountResponse response = AccountResponse.newBuilder().setAccountDetails(account.toProto()).build(); + logger.debug("Returned response: \"{}\".", response); + return Optional.of(response); + } + + private AccountByAuthenticationProviderRequest normalizedPhoneNumber(AccountByAuthenticationProviderRequest request) { + return AccountByAuthenticationProviderRequest.newBuilder() + .setAuthenticationType(request.getAuthenticationType()) + .setAuthenticationIdentifier(validator.getNormalizedPhoneNumber(request.getAuthenticationIdentifier())).build(); + } +} diff --git a/src/test/java/biz/nynja/account/services/AccountServiceTests.java b/src/test/java/biz/nynja/account/services/AccountServiceTests.java index 59f56f4..7debd73 100644 --- a/src/test/java/biz/nynja/account/services/AccountServiceTests.java +++ b/src/test/java/biz/nynja/account/services/AccountServiceTests.java @@ -176,11 +176,11 @@ public class AccountServiceTests extends GrpcServerTestBase { final AccountServiceGrpc.AccountServiceBlockingStub accountServiceBlockingStub = AccountServiceGrpc .newBlockingStub(Optional.ofNullable(channel).orElse(inProcChannel)); - final AccountsResponse reply = accountServiceBlockingStub.getAccountByAccountId(request); + final AccountResponse reply = accountServiceBlockingStub.getAccountByAccountId(request); assertNotNull("Reply should not be null", reply); assertTrue(String.format("Reply should contain profile ID '%s'", Util.ACCOUNT_ID.toString()), - reply.getAccountsResponse().getAccountDetails(0).getAccountId().equals(Util.ACCOUNT_ID.toString())); + reply.getAccountDetails().getAccountId().equals(Util.ACCOUNT_ID.toString())); } @Test @@ -195,7 +195,7 @@ public class AccountServiceTests extends GrpcServerTestBase { final AccountServiceGrpc.AccountServiceBlockingStub accountServiceBlockingStub = AccountServiceGrpc .newBlockingStub(Optional.ofNullable(channel).orElse(inProcChannel)); - final AccountsResponse reply = accountServiceBlockingStub.getAccountByAccountId(request); + final AccountResponse reply = accountServiceBlockingStub.getAccountByAccountId(request); assertNotNull("Reply should not be null", reply); assertTrue(String.format("Reply should contain cause '%s'", Cause.ACCOUNT_NOT_FOUND), @@ -210,7 +210,7 @@ public class AccountServiceTests extends GrpcServerTestBase { final AccountServiceGrpc.AccountServiceBlockingStub accountServiceBlockingStub = AccountServiceGrpc .newBlockingStub(Optional.ofNullable(channel).orElse(inProcChannel)); - final AccountsResponse reply = accountServiceBlockingStub.getAccountByAccountId(request); + final AccountResponse reply = accountServiceBlockingStub.getAccountByAccountId(request); assertNotNull("Reply should not be null", reply); assertTrue(String.format("Reply should contain cause '%s'", Cause.MISSING_ACCOUNT_ID), -- GitLab From a561e076e2bd7e7734b6707f417db55206521796 Mon Sep 17 00:00:00 2001 From: sergeyPensov Date: Fri, 19 Oct 2018 17:31:17 +0300 Subject: [PATCH 2/5] Fix merge conflicts --- .../account/services/AccountServiceImpl.java | 33 ++----------------- 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java index 5311a1e..e4f6e92 100644 --- a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java +++ b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java @@ -8,41 +8,17 @@ import java.util.Date; import java.util.List; import java.util.UUID; +import biz.nynja.account.grpc.*; +import biz.nynja.account.models.*; +import biz.nynja.account.models.Account; import org.lognet.springboot.grpc.GRpcService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import biz.nynja.account.components.AccountServiceHelper; import biz.nynja.account.components.Validator; -import biz.nynja.account.grpc.AccountByAccountIdRequest; -import biz.nynja.account.grpc.AccountByAuthenticationProviderRequest; -import biz.nynja.account.grpc.AccountDetails; -import biz.nynja.account.grpc.AccountResponse; -import biz.nynja.account.grpc.AccountServiceGrpc; -import biz.nynja.account.grpc.AccountsByProfileIdRequest; -import biz.nynja.account.grpc.AccountsList; -import biz.nynja.account.grpc.AccountsResponse; -import biz.nynja.account.grpc.AddAuthenticationProviderRequest; -import biz.nynja.account.grpc.AuthProviderDetails; -import biz.nynja.account.grpc.AuthenticationType; -import biz.nynja.account.grpc.CompletePendingAccountCreationRequest; -import biz.nynja.account.grpc.CreateAccountRequest; -import biz.nynja.account.grpc.CreatePendingAccountRequest; -import biz.nynja.account.grpc.CreatePendingAccountResponse; -import biz.nynja.account.grpc.DeleteAccountRequest; -import biz.nynja.account.grpc.DeleteAuthenticationProviderRequest; -import biz.nynja.account.grpc.StatusResponse; -import biz.nynja.account.grpc.DeleteProfileRequest; -import biz.nynja.account.grpc.ErrorResponse; import biz.nynja.account.grpc.ErrorResponse.Cause; -import biz.nynja.account.models.Account; -import biz.nynja.account.models.AccountByProfileId; -import biz.nynja.account.models.AuthenticationProvider; -import biz.nynja.account.models.PendingAccount; -import biz.nynja.account.models.PendingAccountByAuthenticationProvider; import biz.nynja.account.repositories.AccountByAuthenticationProviderRepository; -import biz.nynja.account.models.Profile; -import biz.nynja.account.models.ProfileByAuthenticationProvider; import biz.nynja.account.repositories.AccountByProfileIdRepository; import biz.nynja.account.repositories.AccountRepository; import biz.nynja.account.repositories.AccountRepositoryAdditional; @@ -50,9 +26,6 @@ import biz.nynja.account.repositories.PendingAccountByAuthenticationProviderRepo import biz.nynja.account.repositories.PendingAccountRepository; import biz.nynja.account.repositories.ProfileByAuthenticationProviderRepository; import biz.nynja.account.repositories.ProfileRepository; -import biz.nynja.account.grpc.UpdateAccountRequest; -import biz.nynja.account.grpc.UpdateProfileRequest; -import biz.nynja.account.grpc.ProfileResponse; import io.grpc.stub.StreamObserver; /** -- GitLab From da376a83e82a42ea77d9035f361461f20b0f3287 Mon Sep 17 00:00:00 2001 From: sergeyPensov Date: Fri, 19 Oct 2018 17:36:29 +0300 Subject: [PATCH 3/5] Return decomposition after merge --- .../account/services/AccountServiceImpl.java | 169 +++++++----------- 1 file changed, 64 insertions(+), 105 deletions(-) diff --git a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java index e4f6e92..d6839dd 100644 --- a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java +++ b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java @@ -3,14 +3,12 @@ */ package biz.nynja.account.services; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.util.*; import biz.nynja.account.grpc.*; import biz.nynja.account.models.*; import biz.nynja.account.models.Account; +import biz.nynja.account.services.decomposition.AccountsProvider; import org.lognet.springboot.grpc.GRpcService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,35 +37,26 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas private static final Logger logger = LoggerFactory.getLogger(AccountServiceImpl.class); private static final byte MIN_NUMBER_OF_AUTH_PROVIDERS_IN_PROFILE = 1; - @Autowired - private AccountRepository accountRepository; - - @Autowired - private AccountByProfileIdRepository accountByProfileIdRepository; - - @Autowired - private AccountByAuthenticationProviderRepository accountByAuthenticationProviderRepository; - - @Autowired - private PendingAccountRepository pendingAccountRepository; - - @Autowired - private PendingAccountByAuthenticationProviderRepository pendingAccountByAuthenticationProviderRepository; - - @Autowired - private AccountRepositoryAdditional accountRepositoryAdditional; - - @Autowired - private ProfileRepository profileRepository; - - @Autowired - private ProfileByAuthenticationProviderRepository profileByAutheticationProviderRepository; - - @Autowired - private Validator validator; - - @Autowired - private AccountServiceHelper accountServiceHelper; + private final PendingAccountRepository pendingAccountRepository; + private final AccountRepositoryAdditional accountRepositoryAdditional; + private final ProfileRepository profileRepository; + private final ProfileByAuthenticationProviderRepository profileByAutheticationProviderRepository; + private final Validator validator; + private final AccountsProvider accountsProvider; + + public AccountServiceImpl(PendingAccountRepository pendingAccountRepository, + AccountRepositoryAdditional accountRepositoryAdditional, + ProfileRepository profileRepository, + ProfileByAuthenticationProviderRepository profileByAutheticationProviderRepository, + Validator validator, + AccountsProvider accountsProvider) { + this.pendingAccountRepository = pendingAccountRepository; + this.accountRepositoryAdditional = accountRepositoryAdditional; + this.profileRepository = profileRepository; + this.profileByAutheticationProviderRepository = profileByAutheticationProviderRepository; + this.validator = validator; + this.accountsProvider = accountsProvider; + } @Override public void createAccount(CreateAccountRequest request, StreamObserver responseObserver) { @@ -78,118 +67,76 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas @Override public void getAccountByAuthenticationProvider(AccountByAuthenticationProviderRequest request, - StreamObserver responseObserver) { + StreamObserver responseObserver) { logger.info("Getting account by authentication provider: {}", request); if (request.getAuthenticationTypeValue() == 0) { - responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_TYPE)).build()); - responseObserver.onCompleted(); + sendErrorMessageForAccountResponse(responseObserver, Cause.MISSING_AUTH_PROVIDER_TYPE); return; } if (request.getAuthenticationIdentifier() == null || request.getAuthenticationIdentifier().isEmpty()) { - responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_IDENTIFIER)).build()); - responseObserver.onCompleted(); + sendErrorMessageForAccountResponse(responseObserver, Cause.MISSING_AUTH_PROVIDER_IDENTIFIER); return; } - if (request.getAuthenticationType() == AuthenticationType.PHONE) { - // Get the normalized phone number from libphone - AccountByAuthenticationProviderRequest newRequest = AccountByAuthenticationProviderRequest.newBuilder() - .setAuthenticationType(request.getAuthenticationType()) - .setAuthenticationIdentifier(validator.getNormalizedPhoneNumber(request.getAuthenticationIdentifier())).build(); - request = newRequest; - } - - Account account = accountServiceHelper.getAccountByAuthenticationProviderHelper( - request.getAuthenticationIdentifier(), request.getAuthenticationType().toString()); - - if (account == null) { + Optional account = accountsProvider.getAccountByAuthenticationProvider(request); - logger.debug("No matching accounts found for authetntication provider {}: {}", - request.getAuthenticationType(), request.getAuthenticationIdentifier()); - responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ACCOUNT_NOT_FOUND)).build()); + if (!account.isPresent()) { + sendErrorMessageForAccountResponse(responseObserver, Cause.ACCOUNT_NOT_FOUND); + } else { + responseObserver.onNext(account.get()); responseObserver.onCompleted(); - return; - } + } - AccountResponse response = AccountResponse.newBuilder().setAccountDetails(account.toProto()).build(); - logger.debug("Found result for account by authentication provider {}: {}: \"{}\"", - request.getAuthenticationType(), request.getAuthenticationIdentifier(), response); - responseObserver.onNext(response); - responseObserver.onCompleted(); - return; } @Override public void getAllAccountsByProfileId(AccountsByProfileIdRequest request, - StreamObserver responseObserver) { + StreamObserver responseObserver) { logger.info("Getting accounts by profile id: {}", request.getProfileId()); if ((request.getProfileId() == null) || (request.getProfileId().isEmpty())) { - responseObserver.onNext(AccountsResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); - responseObserver.onCompleted(); + sendErrorMessageForAccountsResponse(responseObserver, Cause.MISSING_PROFILE_ID); return; } - - List listAccountsByProfileId = accountByProfileIdRepository - .findAllByProfileId(UUID.fromString(request.getProfileId())); - - List responseList = new ArrayList(); - - if (listAccountsByProfileId.size() == 0) { - responseObserver.onNext(AccountsResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ACCOUNT_NOT_FOUND)).build()); - responseObserver.onCompleted(); + if (!validator.isValidUuid(request.getProfileId())) { + sendErrorMessageForAccountsResponse(responseObserver, Cause.INVALID_PROFILE_ID); return; } + Optional accounts = accountsProvider.getAllAccountsByProfileId(request); - for (AccountByProfileId account : listAccountsByProfileId) { - responseList.add(account.toProto()); + if (!accounts.isPresent()) { + sendErrorMessageForAccountsResponse(responseObserver, Cause.ACCOUNT_NOT_FOUND); + } else { + responseObserver.onNext(accounts.get()); + responseObserver.onCompleted(); } - AccountsResponse response = AccountsResponse.newBuilder() - .setAccountsResponse(AccountsList.newBuilder().addAllAccountDetails(responseList)).build(); - - logger.debug("Returned response: \"{}\".", response); - - responseObserver.onNext(response); - responseObserver.onCompleted(); - return; } @Override public void getAccountByAccountId(AccountByAccountIdRequest request, - StreamObserver responseObserver) { + StreamObserver responseObserver) { logger.info("Getting accounts by account id: {}", request.getAccountId()); if ((request.getAccountId() == null) || (request.getAccountId().isEmpty())) { - responseObserver.onNext(AccountsResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_ACCOUNT_ID)).build()); - responseObserver.onCompleted(); + sendErrorMessageForAccountResponse(responseObserver, Cause.MISSING_ACCOUNT_ID); return; } - Account account = accountRepository.findByAccountId(UUID.fromString(request.getAccountId())); - - if (account.getAccountId() == null) { - responseObserver.onNext(AccountsResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ACCOUNT_NOT_FOUND)).build()); - responseObserver.onCompleted(); + if (!validator.isValidUuid(request.getAccountId())) { + sendErrorMessageForAccountResponse(responseObserver, Cause.INVALID_ACCOUNT_ID); return; } - AccountsResponse response = AccountsResponse.newBuilder() - .setAccountsResponse(AccountsList.newBuilder().addAccountDetails(account.toProto())).build(); + Optional account = accountsProvider.getAccountByAccountId(request); - logger.debug("Returned response: \"{}\".", response); - - responseObserver.onNext(response); - responseObserver.onCompleted(); - return; + if (!account.isPresent()) { + sendErrorMessageForAccountResponse(responseObserver, Cause.ACCOUNT_NOT_FOUND); + } else { + responseObserver.onNext(account.get()); + responseObserver.onCompleted(); + } } @Override @@ -645,4 +592,16 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas responseObserver.onCompleted(); return; } + + private void sendErrorMessageForAccountsResponse(StreamObserver responseObserver, ErrorResponse.Cause cause) { + responseObserver.onNext(AccountsResponse.newBuilder() + .setError(ErrorResponse.newBuilder().setCause(cause)).build()); + responseObserver.onCompleted(); + } + + private void sendErrorMessageForAccountResponse(StreamObserver responseObserver, ErrorResponse.Cause cause) { + responseObserver.onNext(AccountResponse.newBuilder() + .setError(ErrorResponse.newBuilder().setCause(cause)).build()); + responseObserver.onCompleted(); + } } \ No newline at end of file -- GitLab From 4e9404001b37814c9d1ec2c84a7fcb5556081e9b Mon Sep 17 00:00:00 2001 From: sergeyPensov Date: Tue, 23 Oct 2018 15:58:15 +0300 Subject: [PATCH 4/5] Change Date to Instant type --- .../account/services/AccountServiceImpl.java | 30 ++++++++----------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java index d6839dd..8c6e3ed 100644 --- a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java +++ b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java @@ -3,28 +3,24 @@ */ package biz.nynja.account.services; -import java.util.*; - -import biz.nynja.account.grpc.*; -import biz.nynja.account.models.*; -import biz.nynja.account.models.Account; -import biz.nynja.account.services.decomposition.AccountsProvider; -import org.lognet.springboot.grpc.GRpcService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import biz.nynja.account.components.AccountServiceHelper; import biz.nynja.account.components.Validator; +import biz.nynja.account.grpc.*; import biz.nynja.account.grpc.ErrorResponse.Cause; -import biz.nynja.account.repositories.AccountByAuthenticationProviderRepository; -import biz.nynja.account.repositories.AccountByProfileIdRepository; -import biz.nynja.account.repositories.AccountRepository; +import biz.nynja.account.models.Account; +import biz.nynja.account.models.*; import biz.nynja.account.repositories.AccountRepositoryAdditional; -import biz.nynja.account.repositories.PendingAccountByAuthenticationProviderRepository; import biz.nynja.account.repositories.PendingAccountRepository; import biz.nynja.account.repositories.ProfileByAuthenticationProviderRepository; import biz.nynja.account.repositories.ProfileRepository; +import biz.nynja.account.services.decomposition.AccountsProvider; import io.grpc.stub.StreamObserver; +import org.lognet.springboot.grpc.GRpcService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.time.Instant; +import java.util.Optional; +import java.util.UUID; /** * gRPC Account service implementation.
@@ -167,7 +163,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas updatedPendingAccount.setAuthenticationProvider(foundExistingPendingAccount.getAuthenticationProvider()); updatedPendingAccount .setAuthenticationProviderType(foundExistingPendingAccount.getAuthenticationProviderType()); - updatedPendingAccount.setCreationTimestamp(new Date().getTime()); + updatedPendingAccount.setCreationTimestamp(Instant.now().toEpochMilli()); PendingAccount updatePendingAccount = pendingAccountRepository.save(updatedPendingAccount); CreatePendingAccountResponse response = CreatePendingAccountResponse.newBuilder() @@ -195,7 +191,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas pendingAccount.setAccountId(UUID.randomUUID()); pendingAccount.setProfileId(UUID.randomUUID()); - pendingAccount.setCreationTimestamp(new Date().getTime()); + pendingAccount.setCreationTimestamp(Instant.now().toEpochMilli()); PendingAccount savedPendingAccount = pendingAccountRepository.save(pendingAccount); logger.debug("Pending account \"{}\" saved into the DB", savedPendingAccount.toString()); -- GitLab From c336420edc2440ec8d7819c61e73357685b00d9a Mon Sep 17 00:00:00 2001 From: sergeyPensov Date: Fri, 26 Oct 2018 11:55:05 +0300 Subject: [PATCH 5/5] Fix imports --- .../account/services/AccountServiceImpl.java | 87 +++++++++---------- 1 file changed, 39 insertions(+), 48 deletions(-) diff --git a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java index 6a004d8..94bf663 100644 --- a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java +++ b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java @@ -3,19 +3,6 @@ */ package biz.nynja.account.services; -import java.time.Instant; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.lognet.springboot.grpc.GRpcService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import biz.nynja.account.components.AccountServiceHelper; import biz.nynja.account.components.PhoneNumberNormalizer; import biz.nynja.account.components.Validator; import biz.nynja.account.grpc.*; @@ -27,6 +14,7 @@ import biz.nynja.account.repositories.ProfileByAuthenticationProviderRepository; import biz.nynja.account.repositories.ProfileRepository; import biz.nynja.account.services.decomposition.AccountsProvider; import io.grpc.stub.StreamObserver; +import org.apache.commons.lang3.tuple.ImmutablePair; import org.lognet.springboot.grpc.GRpcService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,6 +23,9 @@ import java.time.Instant; import java.util.Optional; import java.util.UUID; +import static biz.nynja.account.grpc.ErrorResponse.Cause; +import static biz.nynja.account.grpc.ErrorResponse.newBuilder; + /** * gRPC Account service implementation.
* The service extends the protobuf generated class and overrides the needed methods. It also saves/retrieves the @@ -161,7 +152,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas Cause cause = validator.validateCreatePendingAccountRequest(request); if (cause != null) { responseObserver.onNext(CreatePendingAccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(cause)).build()); + .setError(newBuilder().setCause(cause)).build()); responseObserver.onCompleted(); return; } @@ -201,7 +192,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas AuthenticationProvider.createAuthenticationProviderFromStrings(request.getAuthenticationType().name(), request.getAuthenticationProvider()))) { responseObserver.onNext(CreatePendingAccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ACCOUNT_ALREADY_CREATED)).build()); + .setError(newBuilder().setCause(Cause.ACCOUNT_ALREADY_CREATED)).build()); responseObserver.onCompleted(); return; } @@ -235,7 +226,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas Cause cause = validator.validateCompletePendingAccountCreationRequest(request); if (cause != null) { responseObserver - .onNext(AccountResponse.newBuilder().setError(ErrorResponse.newBuilder().setCause(cause)).build()); + .onNext(AccountResponse.newBuilder().setError(newBuilder().setCause(cause)).build()); responseObserver.onCompleted(); return; } @@ -243,7 +234,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (request.getUsername() != null && !request.getUsername().trim().isEmpty() && accountRepositoryAdditional .foundExistingNotOwnUsername(UUID.fromString(request.getAccountId()), request.getUsername())) { responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.USERNAME_ALREADY_USED)).build()); + .setError(newBuilder().setCause(Cause.USERNAME_ALREADY_USED)).build()); responseObserver.onCompleted(); return; } @@ -252,7 +243,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (createdAccount == null) { responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ERROR_CREATING_ACCOUNT)).build()); + .setError(newBuilder().setCause(Cause.ERROR_CREATING_ACCOUNT)).build()); responseObserver.onCompleted(); return; } else { @@ -274,7 +265,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if ((request.getProfileId() == null) || (request.getProfileId().isEmpty())) { responseObserver.onNext(ProfileResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); + .setError(newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); responseObserver.onCompleted(); return; } @@ -282,7 +273,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas Cause cause = validator.validateUpdateProfileRequest(request); if (cause != null) { responseObserver.onNext(ProfileResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(cause)).build()); + .setError(newBuilder().setCause(cause)).build()); responseObserver.onCompleted(); return; } @@ -291,7 +282,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (updatedProfile == null) { responseObserver.onNext(ProfileResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ERROR_UPDATING_PROFILE)).build()); + .setError(newBuilder().setCause(Cause.ERROR_UPDATING_PROFILE)).build()); responseObserver.onCompleted(); return; } @@ -312,14 +303,14 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if ((request.getAccountId() == null) || (request.getAccountId().isEmpty())) { responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_ACCOUNT_ID)).build()); + .setError(newBuilder().setCause(Cause.MISSING_ACCOUNT_ID)).build()); responseObserver.onCompleted(); return; } Cause validationCause = validator.validateUpdateAccountRequest(request); if (validationCause != null) { responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(validationCause)).build()); + .setError(newBuilder().setCause(validationCause)).build()); responseObserver.onCompleted(); return; } @@ -327,7 +318,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (request.getUsername() != null && !request.getUsername().trim().isEmpty() && accountRepositoryAdditional .foundExistingNotOwnUsername(UUID.fromString(request.getAccountId()), request.getUsername())) { responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.USERNAME_ALREADY_USED)).build()); + .setError(newBuilder().setCause(Cause.USERNAME_ALREADY_USED)).build()); responseObserver.onCompleted(); return; } @@ -336,7 +327,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (updatedAccount == null) { responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ERROR_UPDATING_ACCOUNT)).build()); + .setError(newBuilder().setCause(Cause.ERROR_UPDATING_ACCOUNT)).build()); responseObserver.onCompleted(); return; } @@ -355,7 +346,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if ((request.getAccountId() == null) || (request.getAccountId().isEmpty())) { responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_ACCOUNT_ID)).build()); + .setError(newBuilder().setCause(Cause.MISSING_ACCOUNT_ID)).build()); responseObserver.onCompleted(); return; } @@ -368,7 +359,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas } responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ERROR_DELETING_ACCOUNT)).build()); + .setError(newBuilder().setCause(Cause.ERROR_DELETING_ACCOUNT)).build()); responseObserver.onCompleted(); return; } @@ -378,7 +369,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas logger.debug("Deleting profile: {}", request); if ((request.getProfileId() == null) || (request.getProfileId().isEmpty())) { responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); + .setError(newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); responseObserver.onCompleted(); return; } @@ -393,7 +384,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas logger.info("Error deleting profile."); responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ERROR_DELETING_PROFILE)).build()); + .setError(newBuilder().setCause(Cause.ERROR_DELETING_PROFILE)).build()); responseObserver.onCompleted(); return; } @@ -405,27 +396,27 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas logger.debug("Adding authentication provider to profile requested: {}", request); if ((request.getProfileId() == null) || (request.getProfileId().isEmpty())) { responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); + .setError(newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); responseObserver.onCompleted(); return; } if (request.getAuthenticationProvider().getAuthenticationTypeValue() == 0) { responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_TYPE)).build()); + .setError(newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_TYPE)).build()); responseObserver.onCompleted(); return; } if (request.getAuthenticationProvider().getAuthenticationProvider() == null || request.getAuthenticationProvider().getAuthenticationProvider().isEmpty()) { responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_IDENTIFIER)).build()); + .setError(newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_IDENTIFIER)).build()); responseObserver.onCompleted(); return; } Cause cause = validator.validateAddAuthenticationProviderRequest(request); if (cause != null) { responseObserver - .onNext(StatusResponse.newBuilder().setError(ErrorResponse.newBuilder().setCause(cause)).build()); + .onNext(StatusResponse.newBuilder().setError(newBuilder().setCause(cause)).build()); responseObserver.onCompleted(); return; } @@ -447,7 +438,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (profile == null) { logger.error("Profile id {} missing in DB.", request.getProfileId()); responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.PROFILE_NOT_FOUND)).build()); + .setError(newBuilder().setCause(Cause.PROFILE_NOT_FOUND)).build()); responseObserver.onCompleted(); return; } @@ -461,7 +452,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas request.getAuthenticationProvider().getAuthenticationType().name(), request.getAuthenticationProvider().getAuthenticationProvider()); responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.AUTH_PROVIDER_ALREADY_USED)).build()); + .setError(newBuilder().setCause(Cause.AUTH_PROVIDER_ALREADY_USED)).build()); responseObserver.onCompleted(); return; } @@ -479,7 +470,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas request.getAuthenticationProvider().getAuthenticationType().name(), request.getAuthenticationProvider().getAuthenticationProvider(), request.getProfileId()); responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.INTERNAL_SERVER_ERROR)).build()); + .setError(newBuilder().setCause(Cause.INTERNAL_SERVER_ERROR)).build()); responseObserver.onCompleted(); return; } @@ -551,20 +542,20 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if ((request.getProfileId() == null) || (request.getProfileId().isEmpty())) { responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); + .setError(newBuilder().setCause(Cause.MISSING_PROFILE_ID)).build()); responseObserver.onCompleted(); return; } if (request.getAuthenticationProvider().getAuthenticationTypeValue() == 0) { responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_TYPE)).build()); + .setError(newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_TYPE)).build()); responseObserver.onCompleted(); return; } if (request.getAuthenticationProvider().getAuthenticationProvider() == null || request.getAuthenticationProvider().getAuthenticationProvider().isEmpty()) { responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_IDENTIFIER)).build()); + .setError(newBuilder().setCause(Cause.MISSING_AUTH_PROVIDER_IDENTIFIER)).build()); responseObserver.onCompleted(); return; } @@ -572,7 +563,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas Cause cause = validator.validateDeleteAuthenticationProviderRequest(request); if (cause != null) { responseObserver - .onNext(StatusResponse.newBuilder().setError(ErrorResponse.newBuilder().setCause(cause)).build()); + .onNext(StatusResponse.newBuilder().setError(newBuilder().setCause(cause)).build()); responseObserver.onCompleted(); return; } @@ -582,7 +573,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (profile == null) { logger.error("Profile id {} missing in DB.", request.getProfileId()); responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.PROFILE_NOT_FOUND)).build()); + .setError(newBuilder().setCause(Cause.PROFILE_NOT_FOUND)).build()); responseObserver.onCompleted(); return; } @@ -596,7 +587,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas "Error deleting authentication provider {} from profile with id {}. Check the number of authentication providers.", request.getAuthenticationProvider(), request.getProfileId()); responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.ERROR_DELETING_AUTH_PROVIDER)).build()); + .setError(newBuilder().setCause(Cause.ERROR_DELETING_AUTH_PROVIDER)).build()); responseObserver.onCompleted(); return; } @@ -616,27 +607,27 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas request.getAuthenticationProvider().getAuthenticationType().name(), request.getAuthenticationProvider().getAuthenticationProvider(), request.getProfileId()); responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(Cause.INTERNAL_SERVER_ERROR)).build()); + .setError(newBuilder().setCause(Cause.INTERNAL_SERVER_ERROR)).build()); responseObserver.onCompleted(); return; } - private void sendErrorMessageForAccountsResponse(StreamObserver responseObserver, ErrorResponse.Cause cause) { + private void sendErrorMessageForAccountsResponse(StreamObserver responseObserver, Cause cause) { responseObserver.onNext(AccountsResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(cause)).build()); + .setError(newBuilder().setCause(cause)).build()); responseObserver.onCompleted(); } - private void sendErrorMessageForAccountResponse(StreamObserver responseObserver, ErrorResponse.Cause cause) { + private void sendErrorMessageForAccountResponse(StreamObserver responseObserver, Cause cause) { responseObserver.onNext(AccountResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(cause)).build()); + .setError(newBuilder().setCause(cause)).build()); responseObserver.onCompleted(); } public void prepareErrorStatusResponse(StreamObserver responseObserver, Cause error, String message) { responseObserver.onNext(StatusResponse.newBuilder() - .setError(ErrorResponse.newBuilder().setCause(error).setMessage(message)).build()); + .setError(newBuilder().setCause(error).setMessage(message)).build()); responseObserver.onCompleted(); } } -- GitLab