Search in sources :

Example 1 with WebsocketProgressListener

use of org.structr.cloud.WebsocketProgressListener in project structr by structr.

the class PushNodesCommand method processMessage.

@Override
public void processMessage(final WebSocketMessage webSocketData) {
    final Map<String, Object> properties = webSocketData.getNodeData();
    final String sourceId = webSocketData.getId();
    final Object recursiveSource = properties.get("recursive");
    final String username = (String) properties.get("username");
    final String password = (String) properties.get("password");
    final String host = (String) properties.get("host");
    final Long port = (Long) properties.get("port");
    final String key = (String) properties.get("key");
    if (sourceId != null && host != null && port != null && username != null && password != null && key != null) {
        final App app = StructrApp.getInstance();
        try (final Tx tx = app.tx()) {
            final GraphObject root = app.getNodeById(sourceId);
            if (root != null) {
                boolean recursive = false;
                if (recursiveSource != null) {
                    recursive = "true".equals(recursiveSource.toString());
                }
                CloudService.doRemote(webSocket.getSecurityContext(), new PushTransmission(root, recursive), new HostInfo(username, password, host, port.intValue()), new WebsocketProgressListener(getWebSocket(), key, callback));
            } else {
                getWebSocket().send(MessageBuilder.status().code(404).message("Entity with ID " + sourceId + " not found").build(), true);
            }
            tx.success();
        } catch (FrameworkException fex) {
            logger.warn("", fex);
            getWebSocket().send(MessageBuilder.status().code(400).message(fex.getMessage()).build(), true);
        }
    } else {
        getWebSocket().send(MessageBuilder.status().code(400).message("The PUSH command needs id, username, password, host, port and key!").build(), true);
    }
}
Also used : StructrApp(org.structr.core.app.StructrApp) App(org.structr.core.app.App) PushTransmission(org.structr.cloud.transmission.PushTransmission) Tx(org.structr.core.graph.Tx) FrameworkException(org.structr.common.error.FrameworkException) GraphObject(org.structr.core.GraphObject) WebsocketProgressListener(org.structr.cloud.WebsocketProgressListener) GraphObject(org.structr.core.GraphObject) HostInfo(org.structr.cloud.HostInfo)

Example 2 with WebsocketProgressListener

use of org.structr.cloud.WebsocketProgressListener in project structr by structr.

the class PushSchemaCommand method processMessage.

@Override
public void processMessage(final WebSocketMessage webSocketData) {
    final Map<String, Object> properties = webSocketData.getNodeData();
    final String username = (String) properties.get("username");
    final String password = (String) properties.get("password");
    final String host = (String) properties.get("host");
    final Long port = (Long) properties.get("port");
    final String key = (String) properties.get("key");
    if (host != null && port != null && username != null && password != null && key != null) {
        final App app = StructrApp.getInstance();
        try (final Tx tx = app.tx()) {
            // create push transmission to be filled later
            final PushTransmission tms = new PushTransmission();
            for (final SchemaNode node : app.nodeQuery(SchemaNode.class).getAsList()) {
                if (isFalseOrNull(node.getProperty(SchemaNode.isBuiltinType))) {
                    tms.getExportSet().add(node);
                }
            }
            for (final SchemaRelationshipNode rel : app.nodeQuery(SchemaRelationshipNode.class).getAsList()) {
                tms.getExportSet().add(rel);
            }
            // push schema
            CloudService.doRemote(webSocket.getSecurityContext(), tms, new HostInfo(username, password, host, port.intValue()), new WebsocketProgressListener(getWebSocket(), key, callback));
            tx.success();
        } catch (FrameworkException fex) {
            getWebSocket().send(MessageBuilder.status().code(400).message(fex.getMessage()).build(), true);
        }
    } else {
        getWebSocket().send(MessageBuilder.status().code(400).message("The PUSH_SCHEMA command needs username, password, host, port and key!").build(), true);
    }
}
Also used : StructrApp(org.structr.core.app.StructrApp) App(org.structr.core.app.App) SchemaNode(org.structr.core.entity.SchemaNode) PushTransmission(org.structr.cloud.transmission.PushTransmission) Tx(org.structr.core.graph.Tx) FrameworkException(org.structr.common.error.FrameworkException) SchemaRelationshipNode(org.structr.core.entity.SchemaRelationshipNode) WebsocketProgressListener(org.structr.cloud.WebsocketProgressListener) HostInfo(org.structr.cloud.HostInfo)

Example 3 with WebsocketProgressListener

use of org.structr.cloud.WebsocketProgressListener in project structr by structr.

the class ListRemoteSyncablesCommand method processMessage.

@Override
public void processMessage(final WebSocketMessage webSocketData) {
    final Map<String, Object> properties = webSocketData.getNodeData();
    final String username = (String) properties.get("username");
    final String password = (String) properties.get("password");
    final String host = (String) properties.get("host");
    final String key = (String) properties.get("key");
    final String type = (String) properties.get("type");
    final Long port = (Long) properties.get("port");
    if (host != null && port != null && username != null && password != null && key != null) {
        final App app = StructrApp.getInstance();
        try (final Tx tx = app.tx()) {
            final StructrWebSocket webSocket = getWebSocket();
            final List<SyncableInfo> syncables = CloudService.doRemote(webSocket.getSecurityContext(), new SingleTransmission<>(new ListSyncables(type)), new HostInfo(username, password, host, port.intValue()), new WebsocketProgressListener(getWebSocket(), key, callback));
            if (syncables != null) {
                final List<GraphObject> result = new LinkedList<>();
                for (final SyncableInfo info : syncables) {
                    final GraphObjectMap map = new GraphObjectMap();
                    map.put(GraphObject.id, info.getId());
                    map.put(NodeInterface.name, info.getName());
                    map.put(File.size, info.getSize());
                    map.put(GraphObject.type, info.getType());
                    map.put(GraphObject.visibleToPublicUsers, info.isVisibleToPublicUsers());
                    map.put(GraphObject.visibleToAuthenticatedUsers, info.isVisibleToAuthenticatedUsers());
                    map.put(GraphObject.lastModifiedDate, info.getLastModified());
                    // check for existance
                    map.put(isSynchronized, isSynchronized(info));
                    result.add(map);
                }
                webSocketData.setResult(result);
                webSocket.send(webSocketData, true);
            }
            tx.success();
        } catch (FrameworkException fex) {
            getWebSocket().send(MessageBuilder.status().code(400).message(fex.getMessage()).build(), true);
        }
    } else {
        getWebSocket().send(MessageBuilder.status().code(400).message("The PULL command needs sourceId, username, password, host, port and key!").build(), true);
    }
}
Also used : StructrApp(org.structr.core.app.StructrApp) App(org.structr.core.app.App) Tx(org.structr.core.graph.Tx) FrameworkException(org.structr.common.error.FrameworkException) ListSyncables(org.structr.cloud.message.ListSyncables) StructrWebSocket(org.structr.websocket.StructrWebSocket) SyncableInfo(org.structr.cloud.message.SyncableInfo) GraphObject(org.structr.core.GraphObject) LinkedList(java.util.LinkedList) GraphObjectMap(org.structr.core.GraphObjectMap) GraphObject(org.structr.core.GraphObject) WebsocketProgressListener(org.structr.cloud.WebsocketProgressListener) HostInfo(org.structr.cloud.HostInfo)

Example 4 with WebsocketProgressListener

use of org.structr.cloud.WebsocketProgressListener in project structr by structr.

the class PullCommand method processMessage.

@Override
public void processMessage(final WebSocketMessage webSocketData) {
    final Map<String, Object> properties = webSocketData.getNodeData();
    final String sourceId = webSocketData.getId();
    final Object recursiveSource = properties.get("recursive");
    final String username = (String) properties.get("username");
    final String password = (String) properties.get("password");
    final String host = (String) properties.get("host");
    final String key = (String) properties.get("key");
    final Long port = (Long) properties.get("port");
    if (sourceId != null && host != null && port != null && username != null && password != null && key != null) {
        final App app = StructrApp.getInstance();
        try (final Tx tx = app.tx()) {
            boolean recursive = false;
            if (recursiveSource != null) {
                recursive = "true".equals(recursiveSource.toString());
            }
            CloudService.doRemote(webSocket.getSecurityContext(), new PullTransmission(sourceId, recursive), new HostInfo(username, password, host, port.intValue()), new WebsocketProgressListener(getWebSocket(), key, callback));
            // send finished event
            getWebSocket().send(MessageBuilder.finished().callback(webSocketData.getCallback()).build(), true);
        } catch (FrameworkException fex) {
            getWebSocket().send(MessageBuilder.status().code(400).message(fex.getMessage()).build(), true);
        }
    } else {
        getWebSocket().send(MessageBuilder.status().code(400).message("The PULL command needs sourceId, username, password, host, port and key!").build(), true);
    }
}
Also used : StructrApp(org.structr.core.app.StructrApp) App(org.structr.core.app.App) Tx(org.structr.core.graph.Tx) FrameworkException(org.structr.common.error.FrameworkException) WebsocketProgressListener(org.structr.cloud.WebsocketProgressListener) HostInfo(org.structr.cloud.HostInfo) PullTransmission(org.structr.cloud.transmission.PullTransmission)

Aggregations

HostInfo (org.structr.cloud.HostInfo)4 WebsocketProgressListener (org.structr.cloud.WebsocketProgressListener)4 FrameworkException (org.structr.common.error.FrameworkException)4 App (org.structr.core.app.App)4 StructrApp (org.structr.core.app.StructrApp)4 Tx (org.structr.core.graph.Tx)4 PushTransmission (org.structr.cloud.transmission.PushTransmission)2 GraphObject (org.structr.core.GraphObject)2 LinkedList (java.util.LinkedList)1 ListSyncables (org.structr.cloud.message.ListSyncables)1 SyncableInfo (org.structr.cloud.message.SyncableInfo)1 PullTransmission (org.structr.cloud.transmission.PullTransmission)1 GraphObjectMap (org.structr.core.GraphObjectMap)1 SchemaNode (org.structr.core.entity.SchemaNode)1 SchemaRelationshipNode (org.structr.core.entity.SchemaRelationshipNode)1 StructrWebSocket (org.structr.websocket.StructrWebSocket)1