if ( !query.getQl().isPresent() && query.getSingleUuidIdentifier() != null) { } else if ( !query.getQl().isPresent() && query.getSingleNameOrEmailIdentifier() != null){ logger.trace("getHeadResults(): sending query to ES: appid={}, collection={}, query=[{}]", uuid.toString(), query.getCollection(), query.getQl().isPresent() ? query.getQl().get() : "NONE");
@Test public void testQueryParamsWithUrlEncodedPlus(){ String qlString = "select * where email='test+value@usergrid.com'"; Map<String,List<String>> queryParams = new HashMap<>(); queryParams.put("ql", Collections.singletonList(qlString.replace("+", "%2b"))); Query query = Query.fromQueryParams(queryParams); assertEquals(qlString, query.getQl().get()); }
@Test public void testQueryParamsWithPlus(){ String qlString = "select * where email='test+value@usergrid.com'"; Map<String,List<String>> queryParams = new HashMap<>(); queryParams.put("ql", Collections.singletonList(qlString) ); Query query = Query.fromQueryParams(queryParams); assertEquals(qlString, query.getQl().get()); }
private Notification.PathTokens getPathTokens(List<ServiceParameter> parameters){ Notification.PathTokens pathTokens = new Notification.PathTokens(); pathTokens.setApplicationRef((SimpleEntityRef)em.getApplicationRef()); // first parameter is always collection name, start parsing after that for (int i = 0; i < parameters.size() - 1; i += 2 ) { String collection = pluralize(parameters.get(i).getName()); Identifier identifier = null; String ql = null; ServiceParameter sp = parameters.get(i + 1); // if the next param is a query, add a token with the query if(sp.isQuery()){ ql = sp.getQuery().getQl().get(); pathTokens.getPathTokens().add(new Notification.PathToken( collection, ql)); }else{ // if the next param is "notifications", it's the end let identifier be null if(sp.isName() && !sp.getName().equalsIgnoreCase("notifications") || sp.isId()){ identifier = sp.getIdentifier(); } pathTokens.getPathTokens().add(new Notification.PathToken( collection, identifier)); } } return pathTokens; }
final Optional<String> queryString = query.isGraphSearch()? Optional.<String>absent(): query.getQl(); final boolean isConnecting = query.isConnecting();
private Query adjustQuery( Query query ) { if ( query.getQl().isPresent() ) { return query;
protected Iterator refIterator(EntityManager em, boolean useGraph) throws Exception { if ( query.getQl() == null && query.getSingleNameOrEmailIdentifier() != null){ return new PagingResultsIterator( getHeadResults( em ), Level.REFS, null); } if ( type != null && uuid != null) { return new PagingResultsIterator( getHeadResults( em ), Level.REFS, null); } else { Query q = query; if ( query.getResultsLevel() != Level.REFS ) { // ensure REFS level q = new Query( q ); q.setResultsLevel( Level.REFS ); } if( useGraph){ return new NotificationGraphIterator( em, source.refIterator( em, true), q ); }else{ return new MultiQueryIterator( em, source.refIterator( em, false ), q ); } } }
final Optional<String> queryString = query.isGraphSearch()? Optional.<String>absent(): query.getQl(); final Id ownerId = headEntity.asId(); final boolean analyzeOnly = query.getAnalyzeOnly();