search user changes
[portal.git] / ecomp-portal-BE-os / src / main / java / org / onap / portalapp / portal / service / SearchServiceImpl.java
index 48f6d29..0e9932e 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START==========================================
  * ONAP Portal
  * ===================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ===================================================================
  *
  * Unless otherwise specified, all software contained herein is licensed
@@ -39,12 +39,10 @@ package org.onap.portalapp.portal.service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import org.onap.portalapp.portal.domain.EPUser;
 import org.onap.portalapp.portal.logging.aop.EPMetricsLog;
-import org.onap.portalapp.portal.service.SearchService;
-import org.onap.portalapp.portal.service.SearchServiceImpl;
-import org.onap.portalapp.portal.service.UserService;
 import org.onap.portalapp.portal.transport.UserWithNameSurnameTitle;
 import org.onap.portalapp.portal.utils.EcompPortalUtils;
 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
@@ -75,22 +73,16 @@ public class SearchServiceImpl implements SearchService {
                return searchUsersInFnTable(searchString);
        }
        
+       
        @Override
        public String searchUsersInFnTable(String searchString) {
-               String orgUserId = null;
                List<String> tokens = EcompPortalUtils.parsingByRegularExpression(searchString, " ");
-               for (int i = 0; i < tokens.size(); i++) { // find userid if possible and remove it from tokens
-                       if (tokens.get(i).matches(".*\\d+.*")) {
-                               orgUserId = tokens.get(i);
-                               tokens.remove(i);
-                       }
-               }
                while (tokens.size() > 2) { // we use no more then first 2 tokens (userId is removed, see above)
                        tokens.remove(tokens.size() - 1);
                }
                EPUser attrUser = new EPUser();
-               attrUser.setOrgUserId(orgUserId);
-               List<UserWithNameSurnameTitle> resultOfSearch = new ArrayList<UserWithNameSurnameTitle>(), resultOfAdditionalSearch = null;
+               List<UserWithNameSurnameTitle> resultOfSearch = new ArrayList<UserWithNameSurnameTitle>(), resultOfAdditionalSearch = null,
+                               resultOfSearchUserId = new ArrayList<UserWithNameSurnameTitle>();
                if (tokens.size() == 2) {
                        attrUser.setFirstName(tokens.get(0));
                        attrUser.setLastName(tokens.get(1));
@@ -106,7 +98,9 @@ public class SearchServiceImpl implements SearchService {
                        }
                } else if (tokens.size() == 1) {
                        attrUser.setFirstName(tokens.get(0));
+                       attrUser.setOrgUserId(tokens.get(0));
                        resultOfSearch = this.searchUsersByName(attrUser);
+                       resultOfSearchUserId = this.searchUsersByUserId(attrUser);
                        resultOfSearch = this.removeWrongFirstNames(resultOfSearch, tokens.get(0));
                        if (resultOfSearch.size() < maxSizeOfSearchResult) {
                                attrUser.setFirstName(null);
@@ -114,12 +108,12 @@ public class SearchServiceImpl implements SearchService {
                                resultOfAdditionalSearch = this.searchUsersByName(attrUser);
                                resultOfAdditionalSearch = this.removeWrongLastNames(resultOfAdditionalSearch, tokens.get(0));
                        }
-               } else if (orgUserId != null) {
-                       resultOfSearch = this.searchUsersByUserId(attrUser);
                }
                if (resultOfAdditionalSearch != null) {
                        resultOfSearch.addAll(resultOfAdditionalSearch);
                }
+               resultOfSearch.addAll(resultOfSearchUserId);
+               resultOfSearch.stream().distinct().collect(Collectors.toList());
                resultOfSearch = this.cutSearchResultToMaximumSize(resultOfSearch);
                ObjectMapper mapper = new ObjectMapper();
                String result = "[]";
@@ -131,7 +125,6 @@ public class SearchServiceImpl implements SearchService {
                return result;
        }
 
-       
        @SuppressWarnings("rawtypes")
        public List<UserWithNameSurnameTitle> searchUsersByUserId(EPUser attrUser) {
                List<UserWithNameSurnameTitle> foundUsers = new ArrayList<UserWithNameSurnameTitle>();