@Override public boolean validClient(String clientId, String clientSecret) { Select.Where stmt = QueryBuilder.select("client_id", "client_secret", "status") .from(KEYSPACE_NAME, CLIENTS_TABLE_NAME) .where(QueryBuilder.eq("client_id", clientId)); try { ResultSet rs = session.execute(stmt); Iterator<Row> iter = rs.iterator(); if(iter.hasNext()) { Row row = iter.next(); boolean ret = (row.getString("client_secret").equals(clientSecret) && String.valueOf(ClientCredentials.ACTIVE_STATUS).equals(row.getInt("status"))); return ret; } } catch (NoHostAvailableException e) { log.error("No host in the %s cluster can be contacted to execute the query.\n", session.getCluster()); } catch (QueryExecutionException e) { log.error("An exception was thrown by Cassandra because it cannot " + "successfully execute the query with the specified consistency level."); } catch (QueryValidationException e) { log.error(String.format("The query %s \nis not valid, for example, incorrect syntax.\n", stmt.getQueryString())); } catch (IllegalStateException e) { log.error("The BoundStatement is not ready."); } return false; } @Override
@Override public AccessToken findAccessToken(String accessToken) { Select.Where stmt = QueryBuilder.select().from(KEYSPACE_NAME, ACCESS_TOKEN_TABLE_NAME) .where(QueryBuilder.eq("access_token", accessToken)); try { ResultSet rs = session.execute(stmt); Iterator<Row> iter = rs.iterator(); if(iter.hasNext()) { Row row = iter.next(); AccessToken atoken = mapRowToAccessToken(row); return atoken; } } catch (NoHostAvailableException e) { log.error("No host in the %s cluster can be contacted to execute the query.\n", session.getCluster()); } catch (QueryExecutionException e) { log.error("An exception was thrown by Cassandra because it cannot " + "successfully execute the query with the specified consistency level."); } catch (QueryValidationException e) { log.error(String.format("The query %s \nis not valid, for example, incorrect syntax.\n", stmt.getQueryString())); } catch (IllegalStateException e) { log.error("The BoundStatement is not ready."); } return null; } private AccessToken mapRowToAccessToken(Row row) {
@Override public List<AccessToken> getAccessTokenByUserIdAndClientApp(String userId, String clientId) { // TODO: build a materialized view with userId + clientId key List<AccessToken> list = new ArrayList<AccessToken>(); Select.Where stmt = QueryBuilder.select().from(KEYSPACE_NAME, ACCESS_TOKEN_TABLE_NAME) .allowFiltering() .where() .and(QueryBuilder.eq("user_id", userId)) .and(QueryBuilder.eq("client_id", clientId)) ; try { ResultSet rs = session.execute(stmt); for (Row row : rs) { AccessToken atoken = mapRowToAccessToken(row); list.add(atoken); } } catch (NoHostAvailableException e) { log.error("No host in the %s cluster can be contacted to execute the query.\n", session.getCluster()); } catch (QueryExecutionException e) { log.error("An exception was thrown by Cassandra because it cannot " + "successfully execute the query with the specified consistency level."); } catch (QueryValidationException e) { log.error(String.format("The query %s \nis not valid, for example, incorrect syntax.\n", stmt.getQueryString())); } catch (IllegalStateException e) { log.error("The BoundStatement is not ready."); } return list; }
cqlQuery = query != null ? query.getQueryString() : null; } else { for (Field field : mapping.getFieldList()) { boolean isPrimaryKey = Boolean.parseBoolean(field.getProperty("primarykey")); if (isPrimaryKey) { cqlQuery = select.where(QueryBuilder.eq(field.getColumnName(), "?")).getQueryString(); break;
} catch (QueryValidationException e) { log.error(String.format("The query %s \nis not valid, for example, incorrect syntax.\n", stmt.getQueryString())); } catch (IllegalStateException e) { log.error("The BoundStatement is not ready.");
cqlQuery = query != null ? query.getQueryString() : null; } else { for (Field field : mapping.getFieldList()) { boolean isPrimaryKey = Boolean.parseBoolean(field.getProperty("primarykey")); if (isPrimaryKey) { cqlQuery = select.where(QueryBuilder.eq(field.getColumnName(), "?")).getQueryString(); break;
} catch (QueryValidationException e) { log.error(String.format("The query %s \nis not valid, for example, incorrect syntax.\n", stmt.getQueryString())); } catch (IllegalStateException e) { log.error("The BoundStatement is not ready.");
} catch (QueryValidationException e) { log.error(String.format("The query %s \nis not valid, for example, incorrect syntax.\n", stmt.getQueryString())); } catch (IllegalStateException e) { log.error("The BoundStatement is not ready.");
} catch (QueryValidationException e) { log.error(String.format("The query %s \nis not valid, for example, incorrect syntax.\n", stmt.getQueryString())); } catch (IllegalStateException e) { log.error("The BoundStatement is not ready.");
private static String selectSQL(final String table) { return select().from(table).where(eq(ID, raw("?"))).getQueryString(); }
private static String selectSQL(final String table) { return select().from(table).where(eq(ID, raw("?"))).getQueryString(); }
/** * @return cql query statement to retrieve the workflow_id for a particular task_id from the "task_lookup" table */ public String getSelectTaskFromLookupTableStatement() { return QueryBuilder.select(WORKFLOW_ID_KEY) .from(keyspace, TABLE_TASK_LOOKUP) .where(eq(TASK_ID_KEY, bindMarker())) .getQueryString(); }
/** * @return cql query statement to retrieve a workflow with its tasks from the "workflows" table */ public String getSelectWorkflowWithTasksStatement() { return QueryBuilder.select() .all() .from(keyspace, TABLE_WORKFLOWS) .where(eq(WORKFLOW_ID_KEY, bindMarker())) .and(eq(SHARD_ID_KEY, bindMarker())) .getQueryString(); }
/** * @return cql query statement to retrieve a workflow (without its tasks) from the "workflows" table */ public String getSelectWorkflowStatement() { return QueryBuilder.select(PAYLOAD_KEY) .from(keyspace, TABLE_WORKFLOWS) .where(eq(WORKFLOW_ID_KEY, bindMarker())) .and(eq(SHARD_ID_KEY, 1)) .and(eq(ENTITY_KEY, ENTITY_TYPE_WORKFLOW)) .getQueryString(); }
/** * @return cql query statement to retrieve a task from the "workflows" table */ public String getSelectTaskStatement() { return QueryBuilder.select(PAYLOAD_KEY) .from(keyspace, TABLE_WORKFLOWS) .where(eq(WORKFLOW_ID_KEY, bindMarker())) .and(eq(SHARD_ID_KEY, bindMarker())) .and(eq(ENTITY_KEY, ENTITY_TYPE_TASK)) .and(eq(TASK_ID_KEY, bindMarker())) .getQueryString(); }
/** * @return cql query statement to retrieve the total_tasks and total_partitions for a workflow from the "workflows" table */ public String getSelectTotalStatement() { return QueryBuilder.select(TOTAL_TASKS_KEY, TOTAL_PARTITIONS_KEY) .from(keyspace, TABLE_WORKFLOWS) .where(eq(WORKFLOW_ID_KEY, bindMarker())) .and(eq(SHARD_ID_KEY, 1)) .getQueryString(); }