@JsonRequest @ApiOperation(value = "Perform action for single user", authorizations = @Authorization(value = "read_key")) @Path("/single") public CompletableFuture<Boolean> send(@Named("project") RequestContext context, @ApiParam("user") String userId, @ApiParam("config") EmailActionConfig config) { return httpService.getUser(context, userId).thenApply(user -> send(context.project, user, config)); }
@Override public boolean send(String project, User user, EmailActionConfig config) { Object email = user.properties.get(config.columnName); if (email != null && email instanceof String) { StringTemplate template = new StringTemplate(config.content); String format = template.format(name -> { Object o = user.properties.get(name); if (o != null && o instanceof String) { return o.toString(); } else { return config.defaultValues.get(name); } }); return sendInternal((String) email, config, format); } else { return false; } }
Map<String, Integer> colMap = generateColumnMap(template.getVariables(), result.getMetadata()); }); if (toEmail != null && sendInternal(toEmail, config, format)) { sentEmails++;
@JsonRequest @ApiOperation(value = "Apply batch operation", authorizations = @Authorization(value = "read_key")) @Path("/batch") public CompletableFuture<Long> batch(@Named("project") RequestContext context, @ApiParam(value = "filter", required = false) String filter, @ApiParam(value = "event_filters", required = false) List<UserStorage.EventFilter> event_filter, @ApiParam("config") EmailActionConfig config) { List<String> variables = new StringTemplate(config.content).getVariables(); variables.add(config.columnName); CompletableFuture<QueryResult> future = httpService.searchUsers(context, variables, filter, event_filter, null, null, 100000); return batch(context.project, future, config); }