@JsonRequest @ApiOperation(value = "Apply batch operation", authorizations = @Authorization(value = "read_key")) @Path("/batch") public CompletableFuture<Long> batchSendMessages(@Named("project") RequestContext context, @ApiParam(value = "filter", required = false) String filter, @ApiParam(value = "event_filters", required = false) List<EventFilter> event_filter, @ApiParam("config") MailAction config) { List<String> variables = new StringTemplate(config.message).getVariables(); variables.add(UserStorage.PRIMARY_KEY); Expression expression = parseExpression(filter); CompletableFuture<QueryResult> future = userService.searchUsers(context, variables, expression, event_filter, null, 100000, null); return batch(context.project, future, config); }
@JsonRequest @ApiOperation(value = "Search users", authorizations = @Authorization(value = "read_key")) @Path("/search") public CompletableFuture<QueryResult> searchUsers(@Named("project") RequestContext context, @ApiParam(value = "columns", required = false) List<String> columns, @ApiParam(value = "filter", required = false) String filter, @ApiParam(value = "event_filters", required = false) List<UserStorage.EventFilter> event_filter, @ApiParam(value = "sorting", required = false) Sorting sorting, @ApiParam(value = "offset", required = false) String offset, @ApiParam(value = "limit", required = false) Integer limit) { Expression expression = parseExpression(filter); limit = limit == null ? 100 : Math.min(5000, limit); return service.searchUsers(context, columns, expression, event_filter, sorting, limit, offset); }
final CompletableFuture<QueryResult> search = service.searchUsers(new RequestContext(project, readKey.get(0)), null, expression, read.filterQuery.event_filter, read.filterQuery.sorting, 100000, null); final CompletableFuture<byte[]> stream;