package io.lumify.web.clientapi; import io.lumify.web.clientapi.codegen.ApiException; import io.lumify.web.clientapi.model.ClientApiUser; import io.lumify.web.clientapi.model.ClientApiWorkspace; import java.util.HashMap; import java.util.List; import java.util.Map; public class LumifyApi { private final UserApiExt userApi; private final WorkspaceApiExt workspaceApi; private final AdminApiExt adminApi; private final VertexApiExt vertexApi; private final OntologyApiExt ontologyApi; private final EdgeApiExt edgeApi; private final LongRunningProcessApiExt longRunningProcessApi; private final String basePath; private ClientApiUser me; public LumifyApi(String basePath) { this.basePath = basePath; userApi = new UserApiExt(); userApi.setBasePath(basePath); workspaceApi = new WorkspaceApiExt(); workspaceApi.setBasePath(basePath); adminApi = new AdminApiExt(); adminApi.setBasePath(basePath); vertexApi = new VertexApiExt(); vertexApi.setBasePath(basePath); edgeApi = new EdgeApiExt(); edgeApi.setBasePath(basePath); ontologyApi = new OntologyApiExt(); ontologyApi.setBasePath(basePath); longRunningProcessApi = new LongRunningProcessApiExt(); longRunningProcessApi.setBasePath(basePath); } public UserApiExt getUserApi() { return userApi; } public WorkspaceApiExt getWorkspaceApi() { return workspaceApi; } public AdminApiExt getAdminApi() { return adminApi; } public VertexApiExt getVertexApi() { return vertexApi; } public OntologyApiExt getOntologyApi() { return ontologyApi; } public EdgeApiExt getEdgeApi() { return edgeApi; } public LongRunningProcessApiExt getLongRunningProcessApi() { return longRunningProcessApi; } public String getCurrentWorkspaceId() { return ApiInvoker.getInstance().getWorkspaceId(); } public ClientApiWorkspace loginAndGetCurrentWorkspace() throws ApiException { me = getUserApi().getMe(); ApiInvoker.getInstance().setCsrfToken(me.getCsrfToken()); List<ClientApiWorkspace> workspaces = getWorkspaceApi().getAll().getWorkspaces(); ClientApiWorkspace currentWorkspace = null; if (me.getCurrentWorkspaceId() != null) { for (ClientApiWorkspace workspace : workspaces) { if (workspace.getWorkspaceId().equals(me.getCurrentWorkspaceId())) { currentWorkspace = workspace; break; } } } if (currentWorkspace == null) { if (workspaces.size() == 0) { currentWorkspace = getWorkspaceApi().create(); } else { currentWorkspace = workspaces.get(0); } } ApiInvoker.getInstance().setWorkspaceId(currentWorkspace.getWorkspaceId()); return currentWorkspace; } public String invokeAPI(String path, String method, Map<String, String> queryParams, Object body, Map<String, String> headerParams, Map<String, String> formParams, String contentType) throws ApiException { if (queryParams == null) { queryParams = new HashMap<String, String>(); } if (headerParams == null) { headerParams = new HashMap<String, String>(); } if (formParams == null) { formParams = new HashMap<String, String>(); } return ApiInvoker.getInstance().invokeAPI(this.basePath, path, method, queryParams, body, headerParams, formParams, contentType); } public void logout() throws ApiException { invokeAPI("/logout", "POST", null, null, null, null, null); } public String getCurrentUserId() { return me.getId(); } public void setWorkspaceId(String workspaceId) { ApiInvoker.getInstance().setWorkspaceId(workspaceId); } }