diff --git a/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java b/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java index 63c7b1de41e34d79b0b3cf34e1424473204e5455..c5144b4f97cd00cad58588ffc5da8174a9e5cf9c 100644 --- a/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java +++ b/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java @@ -160,7 +160,7 @@ public class PermissionsInterceptor implements ServerInterceptor { // Get the rpc method called Method[] allMethods = SERVICE_CLASS.getDeclaredMethods(); Method[] adminMethods = ADMIN_SERVICE_CLASS.getDeclaredMethods(); - + for (Method method : allMethods) { if (method.getName().equals(rpc)) { return method; @@ -172,7 +172,7 @@ public class PermissionsInterceptor implements ServerInterceptor { return method; } } - + return null; } diff --git a/src/main/java/biz/nynja/account/services/AdminAccountsImpl.java b/src/main/java/biz/nynja/account/services/AdminAccountsImpl.java index 8ef404dc09b4f495d535280de958ce3a7842a50d..b9bc663a64ca88d74aab9c7b9a6694e14c94a3f0 100644 --- a/src/main/java/biz/nynja/account/services/AdminAccountsImpl.java +++ b/src/main/java/biz/nynja/account/services/AdminAccountsImpl.java @@ -2,7 +2,7 @@ package biz.nynja.account.services; import biz.nynja.account.models.Account; -import biz.nynja.account.services.admin.AccountService; +import biz.nynja.account.services.admin.repository.AdminAccountRepository; import biz.nynja.admin.account.grpc.*; import biz.nynja.admin.account.grpc.AdminAccountsServiceGrpc.AdminAccountsServiceImplBase; import com.google.protobuf.ProtocolStringList; @@ -28,7 +28,7 @@ import java.util.UUID; public class AdminAccountsImpl extends AdminAccountsServiceImplBase { @Autowired - private AccountService accountService; + private AdminAccountRepository accountService; private static final Logger logger = LoggerFactory.getLogger(AdminAccountsImpl.class); @@ -134,7 +134,25 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { logger.info("Fetching records on basis of pagination."); - Map accountsMap = (pageState.equals("nil")) ? accountService.getAccountsByPagination(limit, null) : accountService.getAccountsByPagination(limit, pageState); + Map accountsMap = (pageState.equals("nil")) ? accountService.getAccountsByCreationTimeStampPagination(fromCreationTime, toCreationTime, limit, null) : accountService.getAccountsByCreationTimeStampPagination(fromCreationTime, toCreationTime, limit, pageState); + + if(accountsMap == null){ + + logger.info("No accounts found"); + logger.info(""); + + + errorResponse = ErrorResponse.newBuilder().setCause(ErrorResponse.Cause.ACCOUNTS_NOT_FOUND) + .setMessage("Accounts are not found").build(); + + AccountsResponse response = AccountsResponse.newBuilder().setError(errorResponse).build(); + + responseObserver.onNext(response); + responseObserver.onCompleted(); + return; + + } + accountsList = (List) accountsMap.get("accounts"); nextPageState = accountsMap.get("pageState").toString(); @@ -335,6 +353,23 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { } Map accountsMap = (pageState.equals("nil")) ? accountService.getAccountsByPagination(limit, null) : accountService.getAccountsByPagination(limit, pageState); + + if(accountsMap == null){ + + logger.info("No accounts found"); + logger.info(""); + + errorResponse = ErrorResponse.newBuilder().setCause(ErrorResponse.Cause.ACCOUNTS_NOT_FOUND) + .setMessage("Accounts are not found").build(); + + AccountsResponse response = AccountsResponse.newBuilder().setError(errorResponse).build(); + + responseObserver.onNext(response); + responseObserver.onCompleted(); + return; + + } + accountsList = (List) accountsMap.get("accounts"); nextPageState = accountsMap.get("pageState").toString(); diff --git a/src/main/java/biz/nynja/account/services/admin/AccountService.java b/src/main/java/biz/nynja/account/services/admin/AccountService.java deleted file mode 100644 index 8bc6fa4fd6a139e9852d7f51a646988b398693b8..0000000000000000000000000000000000000000 --- a/src/main/java/biz/nynja/account/services/admin/AccountService.java +++ /dev/null @@ -1,72 +0,0 @@ -package biz.nynja.account.services.admin; - -import biz.nynja.account.models.Account; -import biz.nynja.account.repositories.admin.AccountRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -/** - * This Account Service calls the functions of Account Repository - * which contains account search functions for market admin panel - * to filter accounts while broadcasting message - * - * @author Jayendra - * @since 2019-12-04 - * - */ - - -@Service -public class AccountService { - - @Autowired - private AccountRepository accountRepository; - - public List getAccountByAccountId(UUID accountId) { - return accountRepository.getAccountByAccountId(accountId); - } - - public List getAllAccounts() { - return accountRepository.getAllAccounts(); - } - - public Map getAccountsByPagination(int fetchSize, String pageState) { - return accountRepository.getAccountsByPagination(fetchSize, pageState); - } - - public long getAllAccountsSize() { - return accountRepository.getAllAccountsSize(); - } - - public List getAccountByIds(UUID[] accountIds) { - return accountRepository.getAccountByIds(accountIds); - } - - public Map getAccountsByCreationTimeStampPagination(long fromCreationTime, long toCreationTime, int fetchSize, String pageState) { - return accountRepository.getAccountsByCreationTimeStampPagination(fromCreationTime, toCreationTime, fetchSize, pageState); - } - - public List getAccountsByCreationTimeStamp(long fromCreationTime, long toCreationTime) { - return accountRepository.getAccountsByCreationTimeStamp(fromCreationTime, toCreationTime); - } - - public List getAccountByAuthenticationProvider(String authenticationprovider) { - return accountRepository.getAccountByAuthenticationProvider(authenticationprovider); - } - - public List getAccountByUsername(String username) { - return accountRepository.getAccountByUsername(username); - } - - public List getAccountByFirstname(String firstname) { - return accountRepository.getAccountByFirstname(firstname); - } - - public List getAccountByLastname(String lastname) { - return accountRepository.getAccountByLastname(lastname); - } -} - diff --git a/src/main/java/biz/nynja/account/repositories/admin/AccountRepository.java b/src/main/java/biz/nynja/account/services/admin/repository/AdminAccountRepository.java similarity index 94% rename from src/main/java/biz/nynja/account/repositories/admin/AccountRepository.java rename to src/main/java/biz/nynja/account/services/admin/repository/AdminAccountRepository.java index 09b1665d943f6cea40fd9f7ee778525281e295a5..faf8afc50983dd4188d47da4871ce077ecd9e748 100644 --- a/src/main/java/biz/nynja/account/repositories/admin/AccountRepository.java +++ b/src/main/java/biz/nynja/account/services/admin/repository/AdminAccountRepository.java @@ -1,5 +1,4 @@ -package biz.nynja.account.repositories.admin; - +package biz.nynja.account.services.admin.repository; import biz.nynja.account.models.Account; import com.datastax.driver.core.PagingState; @@ -13,33 +12,29 @@ import org.springframework.data.cassandra.core.query.CassandraPageRequest; import org.springframework.data.cassandra.core.query.Criteria; import org.springframework.data.cassandra.core.query.Query; import org.springframework.data.domain.Slice; -import org.springframework.stereotype.Repository; +import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; /** - * This Account Repository contains the account search functions - * for market admin panel to filter accounts while - * broadcasting message + * This Admin Account Repository contains account search functions for + * market admin panel to filter accounts while broadcasting message * * @author Jayendra * @since 2019-12-04 - * */ -@Repository -public class AccountRepository { - - +@Service +public class AdminAccountRepository { @Autowired private CassandraTemplate cassandraTemplate; private static final Class ENTITY_CLASS = Account.class; - private static final Logger logger = LoggerFactory.getLogger(AccountRepository.class); + private static final Logger logger = LoggerFactory.getLogger(AdminAccountRepository.class); public List getAccountByAccountId(UUID accountId) { @@ -105,7 +100,7 @@ public class AccountRepository { } - public List getAccountsByCreationTimeStamp(long fromCreationTime, long toCreationTime){ + public List getAccountsByCreationTimeStamp(long fromCreationTime, long toCreationTime) { Statement statement = QueryBuilder.select().from("accountbycreationtimestamp") .where(QueryBuilder.gte("creationtimestamp", fromCreationTime)) @@ -119,7 +114,7 @@ public class AccountRepository { Statement statement = QueryBuilder.select().from("accountbycreationtimestamp") .where(QueryBuilder.gte("creationtimestamp", fromCreationTime)) - .and(QueryBuilder.lte("creationtimestamp", toCreationTime)).allowFiltering(); + .and(QueryBuilder.lte("creationtimestamp", toCreationTime)).allowFiltering().setFetchSize(fetchSize); if (pageState != null) { statement.setPagingState(PagingState.fromString(pageState)); @@ -214,3 +209,4 @@ public class AccountRepository { } + diff --git a/src/test/java/biz/nynja/account/services/AccountServiceTests.java b/src/test/java/biz/nynja/account/services/AccountServiceTests.java index 148df8dd1465d7bf09e2d816b99ff2bae34cad22..b1a1f30ced5c9015b41a8b4c9ec400a9d49e82cb 100644 --- a/src/test/java/biz/nynja/account/services/AccountServiceTests.java +++ b/src/test/java/biz/nynja/account/services/AccountServiceTests.java @@ -111,7 +111,7 @@ import io.grpc.Metadata; import io.grpc.stub.MetadataUtils; /** - * AccountService unit tests. + * AdminAccountRepository unit tests. */ @RunWith(SpringRunner.class)