mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-4125 add objectId to gql navigator model (#2085)
This commit is contained in:
@@ -76,6 +76,10 @@ type NavigatorNodeInfo {
|
||||
# Associated object. Maybe null for non-database objects
|
||||
object: DatabaseObjectInfo
|
||||
|
||||
# Associated object. Return value depends on the node type - connectionId for connection node, resource path for resource node, etc.
|
||||
# null - if node currently not support this property
|
||||
objectId: String
|
||||
|
||||
# Supported features: item, container, leaf
|
||||
# canDelete, canRename
|
||||
features: [ String! ]
|
||||
|
||||
+9
@@ -32,6 +32,7 @@ import org.jkiss.dbeaver.model.edit.DBEObjectRenamer;
|
||||
import org.jkiss.dbeaver.model.meta.Association;
|
||||
import org.jkiss.dbeaver.model.meta.Property;
|
||||
import org.jkiss.dbeaver.model.navigator.*;
|
||||
import org.jkiss.dbeaver.model.navigator.fs.DBNPath;
|
||||
import org.jkiss.dbeaver.model.rm.RMProject;
|
||||
import org.jkiss.dbeaver.model.rm.RMProjectPermission;
|
||||
import org.jkiss.dbeaver.model.struct.DBSEntity;
|
||||
@@ -278,6 +279,14 @@ public class WebNavigatorNodeInfo {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Property
|
||||
public String getObjectId() {
|
||||
if (node instanceof DBNPath dbnPath) {
|
||||
return dbnPath.getPath().toUri().toString();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Property
|
||||
public DBSObjectFilter getFilter() throws DBWebException {
|
||||
if (!(node instanceof DBNDatabaseFolder)) {
|
||||
|
||||
+2
-1
@@ -29,7 +29,8 @@ import java.net.URI;
|
||||
*/
|
||||
public interface DBWServiceFS extends DBWService {
|
||||
@NotNull
|
||||
String[] getAvailableFileSystems(@NotNull WebSession webSession, @NotNull String projectId) throws DBWebException;
|
||||
String[] getAvailableFileSystems(@NotNull WebSession webSession, @NotNull String projectId)
|
||||
throws DBWebException;
|
||||
|
||||
@NotNull
|
||||
FSFile getFile(
|
||||
|
||||
+11
-9
@@ -22,6 +22,8 @@ import io.cloudbeaver.service.WebServiceBindingBase;
|
||||
import io.cloudbeaver.service.fs.impl.WebServiceFS;
|
||||
import org.jkiss.utils.CommonUtils;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
/**
|
||||
* Web service implementation
|
||||
*/
|
||||
@@ -41,47 +43,47 @@ public class WebServiceBindingFS extends WebServiceBindingBase<DBWServiceFS> {
|
||||
.dataFetcher("fsFile",
|
||||
env -> getService(env).getFile(getWebSession(env),
|
||||
env.getArgument("projectId"),
|
||||
env.getArgument("fileURI"))
|
||||
URI.create(env.getArgument("fileURI")))
|
||||
)
|
||||
.dataFetcher("fsListFiles",
|
||||
env -> getService(env).getFiles(getWebSession(env),
|
||||
env.getArgument("projectId"),
|
||||
env.getArgument("folderURI"))
|
||||
URI.create(env.getArgument("folderURI")))
|
||||
)
|
||||
.dataFetcher("fsReadFileContentAsString",
|
||||
env -> getService(env).readFileContent(getWebSession(env),
|
||||
env.getArgument("projectId"),
|
||||
env.getArgument("fileURI"))
|
||||
URI.create(env.getArgument("fileURI")))
|
||||
)
|
||||
;
|
||||
model.getMutationType()
|
||||
.dataFetcher("fsCreateFile",
|
||||
env -> getService(env).createFile(getWebSession(env),
|
||||
env.getArgument("projectId"),
|
||||
env.getArgument("fileURI"))
|
||||
URI.create(env.getArgument("fileURI")))
|
||||
)
|
||||
.dataFetcher("fsCreateFolder",
|
||||
env -> getService(env).createFolder(getWebSession(env),
|
||||
env.getArgument("projectId"),
|
||||
env.getArgument("folderURI"))
|
||||
URI.create(env.getArgument("folderURI")))
|
||||
)
|
||||
.dataFetcher("fsDeleteFile",
|
||||
env -> getService(env).deleteFile(getWebSession(env),
|
||||
env.getArgument("projectId"),
|
||||
env.getArgument("fileURI"))
|
||||
URI.create(env.getArgument("fileURI")))
|
||||
)
|
||||
.dataFetcher("fsMoveFile",
|
||||
env -> getService(env).moveFile(
|
||||
getWebSession(env),
|
||||
env.getArgument("projectId"),
|
||||
env.getArgument("fromURI"),
|
||||
env.getArgument("toURI"))
|
||||
URI.create(env.getArgument("fromURI")),
|
||||
URI.create(env.getArgument("toURI")))
|
||||
)
|
||||
.dataFetcher("fsWriteFileStringContent",
|
||||
env -> getService(env).writeFileContent(
|
||||
getWebSession(env),
|
||||
env.getArgument("projectId"),
|
||||
env.getArgument("fileURI"),
|
||||
URI.create(env.getArgument("fileURI")),
|
||||
env.getArgument("data"),
|
||||
CommonUtils.toBoolean(env.getArgument("forceOverwrite"))
|
||||
)
|
||||
|
||||
-2
@@ -41,13 +41,11 @@ public class FSFile {
|
||||
}
|
||||
|
||||
@Property
|
||||
|
||||
public long getLength() throws IOException {
|
||||
return Files.size(path);
|
||||
}
|
||||
|
||||
@Property
|
||||
|
||||
public boolean isFolder() {
|
||||
return Files.isDirectory(path);
|
||||
}
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* DBeaver - Universal Database Manager
|
||||
* Copyright (C) 2010-2023 DBeaver Corp and others
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package io.cloudbeaver.service.fs.model;
|
||||
|
||||
import org.jkiss.code.NotNull;
|
||||
import org.jkiss.code.Nullable;
|
||||
|
||||
public record FSFileSystem(@NotNull String id, @Nullable String requiredAuth) {
|
||||
}
|
||||
@@ -3,10 +3,10 @@
|
||||
|
||||
<plugin>
|
||||
|
||||
<extension point="org.jkiss.dbeaver.fileSystem">
|
||||
<fileSystemProvider id="rm-nio" label="RM NIO" class="io.cloudbeaver.service.rm.fs.RMVirtualFileSystemProvider">
|
||||
<!-- <extension point="org.jkiss.dbeaver.fileSystem">-->
|
||||
<!-- <fileSystemProvider id="rm-nio" label="RM NIO" class="io.cloudbeaver.service.rm.fs.RMVirtualFileSystemProvider">-->
|
||||
|
||||
</fileSystemProvider>
|
||||
</extension>
|
||||
<!-- </fileSystemProvider>-->
|
||||
<!-- </extension>-->
|
||||
|
||||
</plugin>
|
||||
|
||||
Reference in New Issue
Block a user