@Config("collection.webhook.headers") public WebhookConfig setHeaders(String headers) { this.headers = JsonHelper.read(headers, Map.class); return this; } }
@Override public WebHook map(int index, ResultSet r, StatementContext ctx) throws SQLException { return new WebHook(identifier, r.getString(1), r.getString(2), r.getBoolean(3), JsonHelper.read(r.getString(4), new TypeReference<Map<String, Parameter>>() { })); } }).first();
@Override public WebHook map(int index, ResultSet r, StatementContext ctx) throws SQLException { return new WebHook(r.getString(1), r.getString(2), r.getString(3), r.getBoolean(4), JsonHelper.read(r.getString(5), Map.class)); } }).list();
@Override public QueryExecution executeRawQuery(RequestContext context, String query, ZoneId zoneId, Map<String, String> sessionParameters) { String remotedb = sessionParameters.get("remotedb"); if (remotedb != null) { return getSingleQueryExecution(query, JsonHelper.read(remotedb, new TypeReference<List<CustomDataSource>>() { })); } return new JDBCQueryExecution(connectionPool::getConnection, query, false, Optional.ofNullable(zoneId), true); }
public Map<String, Object> getAll(Handle handle, @Named("user_id") UIPermissionParameterProvider.Project project) { return handle.createQuery("SELECT name, value FROM ui_user_defaults WHERE user_id = :user AND project_id = :project") .bind("project", project.project) .bind("user", project.userId) .map((ResultSetMapper<Map.Entry<String, Object>>) (index, r, ctx) -> new AbstractMap.SimpleImmutableEntry<>(r.getString(1), JsonHelper.read(r.getString(2), Object.class))) .list().stream().collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); }
@Override public Map<String, List<CustomReport>> list(int project) { try (Handle handle = dbi.open()) { return handle.createQuery("SELECT r.report_type, r.name, r.data, r.user_id, email FROM custom_reports r " + "JOIN web_user ON (web_user.id = user_id) WHERE project_id = :project") .bind("project", project) .map((i, resultSet, statementContext) -> { return new CustomReport(resultSet.getString(1), resultSet.getString(2), resultSet.getInt(4), resultSet.getString(5), JsonHelper.read(resultSet.getString(3))); }).list().stream().collect(Collectors.groupingBy(customReport -> customReport.reportType)); } }
public Map<String, RemoteTable> getFiles(String project) { try (Handle handle = dbi.open()) { Query<Map<String, Object>> bind = handle.createQuery("SELECT table_name, options FROM custom_file_source WHERE project = :project") .bind("project", project); HashMap<String, RemoteTable> map = new HashMap<>(); bind.map((index, r, ctx) -> { map.put(r.getString(1), JsonHelper.read(r.getString(2), RemoteTable.class)); return null; }).list(); return map; } }
private List<JSEventMapperCode> list(String project) { try (Handle handle = dbi.open()) { return handle.createQuery("SELECT id, name, script, image, parameters " + "FROM custom_event_mappers WHERE project = :project") .bind("project", project).map((index, r, ctx) -> new JSEventMapperCode(r.getInt(1), r.getString(2), r.getString(3), r.getString(4), JsonHelper.read(r.getString(5), new TypeReference<Map<String, Parameter>>() { }))).list(); } }
@Override public InputStream getFile(int project, String slug, String file) { try (Handle handle = dbi.open()) { return handle.createQuery("SELECT data FROM custom_page WHERE project_id = :project AND slug = :slug") .bind("project", project) .bind("slug", slug) .map((i, resultSet, statementContext) -> { return new ByteArrayInputStream(((String) JsonHelper.read(resultSet.getString(1), Map.class) .get(file)).getBytes(UTF_8)); }).first(); } }
@Override public List<CustomReport> list(String reportType, int project) { try (Handle handle = dbi.open()) { return handle.createQuery("SELECT r.name, r.data, r.user_id, email FROM custom_reports r " + "JOIN web_user ON (web_user.id = user_id) WHERE report_type = :reportType AND project_id = :project") .bind("reportType", reportType) .bind("project", project) .map((i, resultSet, statementContext) -> { return new CustomReport(reportType, resultSet.getString(1), resultSet.getInt(3), resultSet.getString(4), JsonHelper.read(resultSet.getString(2))); }).list(); } }
public <T> T get(Handle handle, @Named("user_id") UIPermissionParameterProvider.Project project, @ApiParam("name") String name) { return (T) handle.createQuery("SELECT value FROM ui_user_defaults WHERE user_id = :user AND project_id = :project AND name = :name") .bind("project", project.project) .bind("user", project.userId) .bind("name", name.toUpperCase(Locale.ENGLISH)) .map((index, r, ctx) -> { return JsonHelper.read(r.getString(1), Object.class); }).first(); }
@Override public List<MaterializedView> getMaterializedViews(String project) { List<Map<String, AttributeValue>> items = dynamoDBClient.scan(new ScanRequest() .withTableName(tableConfig.getTableName()) .withFilterExpression("#P = :pValue AND begins_with(type_table_name, :prefix)") .withExpressionAttributeNames(of("#P", "project")) .withExpressionAttributeValues(of( ":pValue", new AttributeValue(project), ":prefix", new AttributeValue("materialized_")))).getItems(); return items.stream() .map(item -> JsonHelper.read(item.get("value").getS(), MaterializedView.class)) .collect(Collectors.toList()); }
@Override public <T> T getConfig(String project, String configName, Class<T> clazz) { try (Handle handle = dbi.open()) { return handle.createQuery("SELECT value FROM config WHERE project = :project AND name = :name") .bind("project", project) .bind("name", configName.toUpperCase(Locale.ENGLISH)).map((i, resultSet, statementContext) -> { return JsonHelper.read(resultSet.getString(1), clazz); }).first(); } }
@Override public <T> T getConfig(String project, String configName, Class<T> clazz) { try (Handle handle = dbi.open()) { return handle.createQuery("SELECT value FROM config WHERE project = :project AND name = :name") .bind("project", project) .bind("name", configName.toUpperCase(Locale.ENGLISH)).map((i, resultSet, statementContext) -> { return JsonHelper.read(resultSet.getString(1), clazz); }).first(); } }
public CustomDataSource getDatabase(String project, String schema) { try (Handle handle = dbi.open()) { Query<Map<String, Object>> bind = handle.createQuery("SELECT type, options FROM custom_data_source WHERE project = :project AND lower(schema_name) = :schema_name") .bind("project", project) .bind("schema_name", schema.toLowerCase(Locale.ENGLISH)); CustomDataSource first = bind.map((index, r, ctx) -> new CustomDataSource(r.getString(1), schema, JsonHelper.read(r.getString(2), JDBCSchemaConfig.class))).first(); if (first == null) { throw new RakamException(NOT_FOUND); } return first; } }
public Map<String, String> get(int project, String slug) { try (Handle handle = dbi.open()) { return handle.createQuery("SELECT data FROM custom_page WHERE project_id = :project AND slug = :slug") .bind("project", project) .bind("slug", slug) .map((i, resultSet, statementContext) -> { return JsonHelper.read(resultSet.getString(1), Map.class); }).first(); } }
@Override public CustomReport get(String reportType, int project, String name) { try (Handle handle = dbi.open()) { return handle.createQuery("SELECT data, web_user.id, web_user.email FROM custom_reports r " + "JOIN web_user ON (web_user.id = user_id) " + "WHERE r.report_type = :reportType AND r.project_id = :project AND r.name = :name") .bind("reportType", reportType) .bind("project", project) .bind("name", name) .map((i, resultSet, statementContext) -> { return new CustomReport(reportType, name, resultSet.getInt(2), resultSet.getString(3), JsonHelper.read(resultSet.getString(1))); }).first(); } }
public RemoteTable getFile(String project, String tableName) { try (Handle handle = dbi.open()) { Query<Map<String, Object>> bind = handle.createQuery("SELECT options FROM custom_file_source WHERE project = :project AND table_name = :table_name") .bind("project", project) .bind("table_name", tableName); RemoteTable first = bind.map((index, r, ctx) -> { return JsonHelper.read(r.getString(1), RemoteTable.class); }).first(); if (first == null) { throw new RakamException(NOT_FOUND); } return first; } }
@Override public MaterializedView getMaterializedView(String project, String tableName) { Map<String, AttributeValue> item = dynamoDBClient.getItem(new GetItemRequest().withTableName(tableConfig.getTableName()) .withAttributesToGet("value") .withKey(of( "project", new AttributeValue(project), "type_table_name", new AttributeValue("materialized_" + tableName)))).getItem(); if (item == null) { throw new NotExistsException("Materialized view"); } return JsonHelper.read(item.get("value").getS(), MaterializedView.class); }
@Override public <T> T getConfig(String project, String configName, Class<T> clazz) { Map<String, AttributeValue> item = dynamoDBClient.getItem(new GetItemRequest() .withTableName(tableConfig.getTableName()) .withKey(new SimpleImmutableEntry<>("project", new AttributeValue(project)), new SimpleImmutableEntry<>("id", new AttributeValue(configName))) .withAttributesToGet("value") .withConsistentRead(true)).getItem(); if (item == null) { return null; } String value = item.get("value").getS(); return value == null ? null : JsonHelper.read(value, clazz); }