From 414dd1b1dfab1ea59b43f87f7879f0974408bde8 Mon Sep 17 00:00:00 2001 From: amit-tarento Date: Mon, 10 Jul 2017 12:16:04 +0530 Subject: [PATCH] Issue #349 feat:verify user api change --- .../learner/actors/RequestRouterActor.java | 1 + .../learner/actors/UserManagementActor.java | 27 +++++++++++++++++-- src/main/resources/cassandra.cql | 4 ++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/sunbird/learner/actors/RequestRouterActor.java b/src/main/java/org/sunbird/learner/actors/RequestRouterActor.java index 85d1725ec..83ae3f33a 100644 --- a/src/main/java/org/sunbird/learner/actors/RequestRouterActor.java +++ b/src/main/java/org/sunbird/learner/actors/RequestRouterActor.java @@ -110,6 +110,7 @@ private void initializeRouterMap() { routerMap.put(ActorOperations.CHANGE_PASSWORD.getValue(), userManagementRouter); routerMap.put(ActorOperations.GET_PROFILE.getValue(), userManagementRouter); routerMap.put(ActorOperations.GET_ROLES.getValue(), userManagementRouter); + routerMap.put(ActorOperations.VERIFY_USER_EXISTENCE.getValue(), userManagementRouter); routerMap.put(ActorOperations.CREATE_PAGE.getValue(), pageManagementRouter); routerMap.put(ActorOperations.UPDATE_PAGE.getValue(), pageManagementRouter); diff --git a/src/main/java/org/sunbird/learner/actors/UserManagementActor.java b/src/main/java/org/sunbird/learner/actors/UserManagementActor.java index 26208f626..7b220650c 100644 --- a/src/main/java/org/sunbird/learner/actors/UserManagementActor.java +++ b/src/main/java/org/sunbird/learner/actors/UserManagementActor.java @@ -71,7 +71,9 @@ public void onReceive(Object message) throws Throwable { joinUserOrganisation(actorMessage); }else if (actorMessage.getOperation().equalsIgnoreCase(ActorOperations.APPROVE_USER_ORGANISATION.getValue())){ approveUserOrg(actorMessage); - }else { + }else if (actorMessage.getOperation().equalsIgnoreCase(ActorOperations.VERIFY_USER_EXISTENCE.getValue())){ + verifyUser(actorMessage); + }else { logger.info("UNSUPPORTED OPERATION"); ProjectCommonException exception = new ProjectCommonException(ResponseCode.invalidOperationName.getErrorCode(), ResponseCode.invalidOperationName.getErrorMessage(), ResponseCode.CLIENT_ERROR.getResponseCode()); sender().tell(exception, self()); @@ -84,6 +86,23 @@ public void onReceive(Object message) throws Throwable { } } + @SuppressWarnings("unchecked") + private void verifyUser(Request actorMessage) { + Util.DbInfo usrDbInfo = Util.dbInfoMap.get(JsonKey.USER_DB); + Response response = new Response(); + Map userMap=(Map) actorMessage.getRequest().get(JsonKey.USER); + if(null != userMap.get(JsonKey.LOGIN_ID)){ + String loginId = (String)userMap.get(JsonKey.LOGIN_ID); + Response resultFrEmail = cassandraOperation.getRecordsByProperty(usrDbInfo.getKeySpace(),usrDbInfo.getTableName(),JsonKey.LOGIN_ID,loginId); + if(!((List>)resultFrEmail.get(JsonKey.RESPONSE)).isEmpty()){ + response.put(JsonKey.RESPONSE, JsonKey.USER_FOUND); + }else{ + response.put(JsonKey.RESPONSE, JsonKey.USER_NOT_FOUND); + } + sender().tell(response, self()); + } + } + /** * Method to get the user profile . * @param actorMessage Request @@ -549,7 +568,11 @@ private void createUser(Request actorMessage){ userMap.put(JsonKey.USER_ID,OneWayHashing.encryptVal((String)userMap.get(JsonKey.USERNAME))); userMap.put(JsonKey.ID,OneWayHashing.encryptVal((String)userMap.get(JsonKey.USERNAME))); } - userMap.put(JsonKey.LOGIN_ID, ((String)userMap.get(JsonKey.USERNAME)+"@"+(String)userMap.get(JsonKey.PROVIDER))); + if(!ProjectUtil.isStringNullOREmpty((String)userMap.get(JsonKey.PROVIDER))){ + userMap.put(JsonKey.LOGIN_ID, ((String)userMap.get(JsonKey.USERNAME)+"@"+(String)userMap.get(JsonKey.PROVIDER))); + }else{ + userMap.put(JsonKey.LOGIN_ID,userMap.get(JsonKey.USERNAME)); + } userMap.put(JsonKey.CREATED_DATE, ProjectUtil.getFormattedDate()); userMap.put(JsonKey.STATUS, ProjectUtil.Status.ACTIVE.getValue()); if(!ProjectUtil.isStringNullOREmpty((String)userMap.get(JsonKey.PASSWORD))){ diff --git a/src/main/resources/cassandra.cql b/src/main/resources/cassandra.cql index 12033c679..84c1b3502 100644 --- a/src/main/resources/cassandra.cql +++ b/src/main/resources/cassandra.cql @@ -387,4 +387,6 @@ CREATE TABLE IF NOT EXISTS sunbird.org_type(id text, name text, PRIMARY KEY (id) DROP INDEX sunbird.inx_org_status; ALTER TABLE sunbird.organisation DROP status ; ALTER TABLE sunbird.organisation ADD status text; -CREATE INDEX inx_org_status ON sunbird.organisation (status); \ No newline at end of file +CREATE INDEX inx_org_status ON sunbird.organisation (status); + +CREATE INDEX inx_u_loginId ON sunbird.user(loginId); \ No newline at end of file