@Override public void onSuccess(@Nullable Void result) { success.complete(SuccessMessage.success()); }
public static SuccessMessage success(String message) { return new SuccessMessage(message); }
@GET @Path("/logout") public Response<SuccessMessage> logout() { return Response.ok(SuccessMessage.success()).addCookie("session", "", null, true, -1L, "/", null); }
@JsonRequest @ProtectEndpoint(writeOperation = true) @Path("/delete-project") @DELETE public SuccessMessage deleteProject(@Named("user_id") Project project) { service.deleteProject(project.userId, project.project); return SuccessMessage.success(); }
@ApiOperation(value = "Create Report", authorizations = @Authorization(value = "read_key")) @Path("/create") @POST @ProtectEndpoint(writeOperation = true) public SuccessMessage create(@Named("user_id") Project project, @BodyParam Report report) { metadata.save(project.userId, project.project, report); return SuccessMessage.success(); }
/** * Creates real-time report using continuous queries. * This module adds a new attribute called 'time' to events, it's simply a unix epoch that represents the seconds the event is occurred. * Continuous query continuously aggregates 'time' column and * real-time module executes queries on continuous query table similar to 'select count from stream_count where time > now() - interval 5 second' * <p> * curl 'http://localhost:9999/realtime/create' -H 'Content-Type: application/json;charset=UTF-8' --data-binary '{"project": "projectId", "name": "Events by collection", "aggregation": "COUNT"}' * * @param report real-time report * @return a future that contains the operation status */ @JsonRequest @ApiOperation(value = "Create report", authorizations = @Authorization(value = "master_key")) @Path("/create") public CompletableFuture<SuccessMessage> createTable(@Named("project") RequestContext context, @BodyParam RealTimeReport report) { return realtimeService.create(context.project, report).thenApply(error -> { if (error == null) { return SuccessMessage.success(); } return SuccessMessage.success(error.message); }); }
@ApiOperation(value = "Remove rule", authorizations = @Authorization(value = "master_key") ) @JsonRequest @Path("/remove") public SuccessMessage removeRule(@Named("project") RequestContext context, @ApiParam("id") int id) { service.remove(context.project, id); return SuccessMessage.success(); }
@ApiOperation(value = "Activate rule", authorizations = @Authorization(value = "master_key") ) @JsonRequest @Path("/activate") public SuccessMessage activateRule(@Named("project") RequestContext context, @ApiParam("id") int id) { service.activate(context.project, id); return SuccessMessage.success(); }
@Path("/save") @POST @JsonRequest @ProtectEndpoint(writeOperation = true) @ApiOperation(value = "Save Report", authorizations = @Authorization(value = "read_key"), response = SuccessMessage.class, request = CustomPageDatabase.Page.class) public SuccessMessage save( @Named("user_id") UIPermissionParameterProvider.Project project, @BodyParam CustomPageDatabase.Page report) { database.get().save(project.userId, project.project, report); return SuccessMessage.success(); }
public SuccessMessage testDatabase(String project, String type, JDBCSchemaConfig options) { SupportedCustomDatabase optionalFunction = SupportedCustomDatabase.getAdapter(type); Optional<String> test = optionalFunction.getDataSource().test(options); if (test.isPresent()) { throw new RakamException(test.get(), BAD_REQUEST); } return SuccessMessage.success(); }
public SuccessMessage testFile(String project, DiscoverableRemoteTable hook) { ExternalFileCustomDataSource source = new ExternalFileCustomDataSource(); Optional<String> test = source.test(hook.getTable()); if (test.isPresent()) { throw new RakamException(test.get(), BAD_REQUEST); } return SuccessMessage.success(); }
@JsonRequest @ApiOperation(value = "Delete report", authorizations = @Authorization(value = "master_key")) @Path("/delete") public SuccessMessage delete(@Named("project") RequestContext context, @ApiParam("id") int id) { metadata.delete(context.project, id); return SuccessMessage.success(); }
@ApiOperation(value = "Deactivate rule", authorizations = @Authorization(value = "master_key") ) @JsonRequest @Path("/deactivate") public SuccessMessage deactivateRule(@Named("project") RequestContext context, @ApiParam("id") int id) { service.deactivate(context.project, id); return SuccessMessage.success(); }
@JsonRequest @ProtectEndpoint(writeOperation = true) @Path("/revoke-api-keys") public SuccessMessage revokeApiKeys(@ApiParam("master_key") String key, @Named("user_id") Project project) { service.revokeApiKeys(project.userId, project.project, key); return SuccessMessage.success(); }
@ApiOperation(value = "Add scenario", authorizations = @Authorization(value = "master_key") ) @JsonRequest @Path("/add") public SuccessMessage addRule(@Named("project") RequestContext context, @BodyParam AutomationRule rule) { service.add(context.project, rule); return SuccessMessage.success(); }
@JsonRequest @ApiOperation(value = "Create test", authorizations = @Authorization(value = "master_key")) @Path("/create") public SuccessMessage create(@Named("project") RequestContext context, @BodyParam ABTestingReport report) { metadata.save(context.project, report); return SuccessMessage.success(); }
@ApiOperation(value = "Update report", authorizations = @Authorization(value = "read_key")) @POST @Path("/update") @JsonRequest @ProtectEndpoint(writeOperation = true) public SuccessMessage update(@Named("user_id") Project project, @BodyParam Report report) { metadata.update(project.userId, project.project, report); return SuccessMessage.success(); } }
@Path("/delete") @ApiOperation(value = "Delete Report", authorizations = @Authorization(value = "read_key")) @JsonRequest @ProtectEndpoint(writeOperation = true) public SuccessMessage delete(@com.google.inject.name.Named("user_id") UIPermissionParameterProvider.Project project, @ApiParam("name") String name) { if (!database.isPresent()) { throw new RakamException("Custom page feature is not implemented", NOT_IMPLEMENTED); } database.get().delete(project.project, name); return SuccessMessage.success(); }
/** * Creates a new materialized view for specified SQL query. * materialized views allow you to execute batch queries over the data-set. * Rakam caches the materialized view result and serve the cached data when you request. * You can also trigger an update using using '/view/update' endpoint. * This feature is similar to MATERIALIZED VIEWS in RDBMSs. * <p> * curl 'http://localhost:9999/materialized-view/create' -H 'Content-Type: text/event-stream;charset=UTF-8' --data-binary '{"project": "projectId", "name": "Yearly Visits", "query": "SELECT year(time), count(1) from visits GROUP BY 1"}' * * @param query materialized view query * @return the status */ @JsonRequest @ApiOperation(value = "Create view", authorizations = @Authorization(value = "master_key")) @Path("/create") public CompletableFuture<SuccessMessage> createView(@Named("project") RequestContext context, @BodyParam MaterializedView query) { return service.create(context, query).thenApply(res -> SuccessMessage.success()); }
@JsonRequest @ApiOperation(value = "Delete report", authorizations = @Authorization(value = "master_key")) @Path("/delete") public CompletableFuture<SuccessMessage> deleteTable(@Named("project") RequestContext context, @ApiParam("table_name") String tableName) { return realtimeService.delete(context.project, tableName).thenApply(result -> { if (result == null) { return SuccessMessage.success(); } else { throw new RakamException(result.message, BAD_REQUEST); } }); } }