@Path("/get_online_users") @POST @JsonRequest @ApiOperation(value = "Get connected users", authorizations = @Authorization(value = "read_key") ) public CompletableFuture<Collection<Map<String, Object>>> getConnectedUsers(@Named("project") RequestContext context) { Collection<Object> connectedUsers = webSocketService.getConnectedUsers(context.project); return CompletableFuture.completedFuture(connectedUsers.stream() .map(id -> ImmutableMap.of(config.getIdentifierColumn(), id)) .collect(Collectors.toList())); }
@JsonRequest @ApiOperation(value = "Get collection schema", authorizations = @Authorization(value = "read_key")) @Path("/schema") public List<Collection> schema(@Named("project") RequestContext context, @ApiParam(value = "names", required = false) Set<String> names) { return metastore.getCollections(context.project).entrySet().stream() .filter(entry -> names == null || names.contains(entry.getKey())) .map(entry -> new Collection(entry.getKey(), entry.getValue())) .collect(Collectors.toList()); }
@JsonRequest @ApiOperation(value = "List views", authorizations = @Authorization(value = "read_key")) @Path("/list") public List<MaterializedView> listViews(@Named("project") RequestContext context) { return service.list(context.project); }
@JsonRequest @ApiOperation(value = "Get schemas", authorizations = @Authorization(value = "read_key")) @Path("/schema") public List<MaterializedViewSchema> getSchemaOfView(@Named("project") RequestContext context, @ApiParam(value = "names", required = false) List<String> tableNames) { return service.getSchemas(context, Optional.ofNullable(tableNames)).entrySet().stream() .map(entry -> new MaterializedViewSchema(entry.getKey(), entry.getValue())) .collect(Collectors.toList()); }
@ApiOperation(value = "List installed modules", authorizations = @Authorization(value = "master_key") ) @GET @Path("/configurations") @JsonRequest public List<ModuleDescriptor> getConfigurations() { return systemRegistry.getModules(); }
@ApiOperation(value = "Add data-source", authorizations = @Authorization(value = "master_key")) @Path("/add/database") @JsonRequest public SuccessMessage addDatabase(@Named("project") RequestContext context, @BodyParam CustomDataSource hook) { return service.addDatabase(context.project, hook); }
@ApiOperation(value = "Get hook", authorizations = @Authorization(value = "master_key")) @Path("/get") @JsonRequest public WebHook get(@Named("project") RequestContext context, @ApiParam("identifier") String identifier) { return get(context.project, identifier); }
@Path("/get") @ApiOperation(value = "Get Report", authorizations = @Authorization(value = "read_key")) @JsonRequest public Map<String, String> get(@com.google.inject.name.Named("user_id") UIPermissionParameterProvider.Project project, @ApiParam("slug") String slug) { if (!database.isPresent()) { throw new RakamException("Custom page feature is not implemented", NOT_IMPLEMENTED); } return database.get().get(project.project, slug); }
@ApiOperation(value = "Check lock key", authorizations = @Authorization(value = "master_key") ) @JsonRequest @Path("/lock_key") public boolean checkLockKey(@ApiParam(value = "lock_key", required = false) String lockKey) { return Objects.equals(lockKey, projectConfig.getLockKey()); }
@JsonRequest @ApiOperation(value = "Test query", authorizations = @Authorization(value = "read_key")) @Path("/metadata") public CompletableFuture<List<SchemaField>> metadata(@Named("project") RequestContext context, @ApiParam("query") String query) { return executorService.metadata(context, query); }
@JsonRequest @ApiOperation(value = "Create multiple new users", authorizations = @Authorization(value = "write_key"), notes = "Returns user ids. User id may be string or numeric.") @Path("/batch/create") public List<Object> createUsers(@Named("project") RequestContext context, @ApiParam("users") List<User> users) { try { return service.batchCreate(context, users); } catch (Exception e) { throw new RakamException(e.getMessage(), BAD_REQUEST); } }
@JsonRequest @ApiOperation(value = "Get user", authorizations = @Authorization(value = "read_key")) @ApiResponses(value = {@ApiResponse(code = 404, message = "User does not exist.")}) @Path("/get") public CompletableFuture<User> getUser(@Named("project") RequestContext context, @ApiParam("user") Object user) { return service.getUser(context, user); }
@ApiOperation(value = "Test database", authorizations = @Authorization(value = "master_key")) @Path("/test/database") @JsonRequest public SuccessMessage testDatabase(@Named("project") RequestContext context, @ApiParam("type") String type, @ApiParam(value = "options") JDBCSchemaConfig options) { return service.testDatabase(context.project, type, options); }
@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(); }
@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 = "Get logs", authorizations = @Authorization(value = "master_key")) @JsonRequest @Path("/get_logs") public List<JSCodeJDBCLoggerService.LogEntry> getLogs(@Named("project") RequestContext context, @ApiParam("id") int id, @ApiParam(value = "start", required = false) Instant start, @ApiParam(value = "end", required = false) Instant end) { return loggerService.getLogs(context, start, end, "custom-event-mapper." + id); }
@JsonRequest @ApiOperation(value = "Delete Report", authorizations = @Authorization(value = "read_key")) @Path("/delete") @ProtectEndpoint(writeOperation = true) public SuccessMessage delete( @Named("user_id") Project project, @ApiParam(value = "slug", description = "Slug") String slug) { metadata.delete(project.userId, project.project, slug); return SuccessMessage.success(); }
@JsonRequest @ApiOperation(value = "Add fields to collections", authorizations = @Authorization(value = "master_key")) @Path("/schema/add") public List<SchemaField> addFieldsToSchema(@Named("project") RequestContext context, @ApiParam("collection") String collection, @ApiParam("fields") Set<SchemaField> fields) { return metastore.getOrCreateCollectionFields(context.project, collection, schemaChecker.checkNewFields(collection, fields)); }
@JsonRequest @ProtectEndpoint(requiresProject = false) @ApiOperation(value = "List cluster", authorizations = @Authorization(value = "read_key")) @Path("/list") @GET public List<String> list(@javax.inject.Named("user_id") Project project) { try (Handle handle = dbi.open()) { return handle.createQuery("SELECT api_url FROM rakam_cluster WHERE user_id = :userId") .bind("userId", project.userId).map(StringMapper.FIRST).list(); } }