getRepositoryClient(ctx).get(ctx, csid, handler);\r
return ctx.getOutput();\r
}\r
+ \r
+ protected boolean isGetAllRequest(MultivaluedMap<String, String> queryParams) {\r
+ boolean result = false;\r
+ \r
+ String keywords = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_KW);\r
+ String advancedSearch = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_AS);\r
+ String partialTerm = queryParams.getFirst(IQueryManager.SEARCH_TYPE_PARTIALTERM);\r
+ \r
+ if (Tools.isBlank(keywords) && Tools.isBlank(advancedSearch) && Tools.isBlank(partialTerm)) {\r
+ result = true;\r
+ }\r
+ \r
+ return result;\r
+ }\r
\r
//======================= GET without csid. List, search, etc. =====================================\r
@GET\r
public AbstractCommonList getList(@Context UriInfo ui) {\r
MultivaluedMap<String, String> queryParams = ui.getQueryParameters();\r
- String orderBy = queryParams.getFirst(IClientQueryParams.ORDER_BY_PARAM);\r
- String keywords = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_KW);\r
- String advancedSearch = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_AS);\r
- String partialTerm = queryParams.getFirst(IQueryManager.SEARCH_TYPE_PARTIALTERM);\r
-\r
- AbstractCommonList list;\r
- if (keywords != null || advancedSearch != null) {\r
+ AbstractCommonList list = null;\r
+ \r
+ if (isGetAllRequest(queryParams) == false) {\r
+ String orderBy = queryParams.getFirst(IClientQueryParams.ORDER_BY_PARAM);\r
+ String keywords = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_KW);\r
+ String advancedSearch = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_AS);\r
+ String partialTerm = queryParams.getFirst(IQueryManager.SEARCH_TYPE_PARTIALTERM);\r
list = search(queryParams, orderBy, keywords, advancedSearch, partialTerm);\r
} else {\r
list = getList(queryParams);\r
}\r
+ \r
return list;\r
}\r
\r
}\r
\r
//\r
- //NOTE: Partial-term (PT) searches are mutually exclusive to keyword and advanced-search, but\r
- // the PT query param trumps the keyword search.\r
+ // NOTE: Partial-term (PT) queries are mutually exclusive to keyword and\r
+ // partial-term queries trump keyword queries.\r
//\r
if (partialTerm != null && !partialTerm.isEmpty()) {\r
String partialTermMatchField = getPartialTermMatchField(ctx);\r
protected String getOrderByField(ServiceContext<PoxPayloadIn, PoxPayloadOut> ctx) {\r
String result = null;\r
\r
- DocHandlerParams.Params params = null;\r
- try {\r
- result = getPartialTermMatchField(ctx);\r
- if (result == null) {\r
- throw new Exception();\r
- }\r
- } catch (Exception e) {\r
- if (logger.isWarnEnabled()) {\r
- logger.warn(String.format("Call failed to getOrderByField() for class %s", this.getClass().getName()));\r
- }\r
- }\r
- \r
+ // We only want to use the partial term field to order the results if a PT query param exists\r
+ String partialTerm = ctx.getQueryParams().getFirst(IQueryManager.SEARCH_TYPE_PARTIALTERM);\r
+ if (Tools.notBlank(partialTerm) == true) {\r
+ DocHandlerParams.Params params = null;\r
+ try {\r
+ result = getPartialTermMatchField(ctx);\r
+ if (result == null) {\r
+ throw new Exception();\r
+ }\r
+ } catch (Exception e) {\r
+ if (logger.isWarnEnabled()) {\r
+ logger.warn(String.format("Call failed to getOrderByField() for class %s", this.getClass().getName()));\r
+ }\r
+ }\r
+ }\r
+ \r
return result;\r
}\r
\r