• remote-browser-socket-handler.js
  • const { sendRemoteBrowserList } = require("../client");
    const { checkLogin } = require("../util-server");
    const { RemoteBrowser } = require("../remote-browser");
    
    const { log } = require("../../src/util");
    const { testRemoteBrowser } = require("../monitor-types/real-browser-monitor-type");
    
    /**
     * Handlers for docker hosts
     * @param {Socket} socket Socket.io instance
     * @returns {void}
     */
    module.exports.remoteBrowserSocketHandler = (socket) => {
        socket.on("addRemoteBrowser", async (remoteBrowser, remoteBrowserID, callback) => {
            try {
                checkLogin(socket);
    
                let remoteBrowserBean = await RemoteBrowser.save(remoteBrowser, remoteBrowserID, socket.userID);
                await sendRemoteBrowserList(socket);
    
                callback({
                    ok: true,
                    msg: "Saved.",
                    msgi18n: true,
                    id: remoteBrowserBean.id,
                });
    
            } catch (e) {
                callback({
                    ok: false,
                    msg: e.message,
                });
            }
        });
    
        socket.on("deleteRemoteBrowser", async (dockerHostID, callback) => {
            try {
                checkLogin(socket);
    
                await RemoteBrowser.delete(dockerHostID, socket.userID);
                await sendRemoteBrowserList(socket);
    
                callback({
                    ok: true,
                    msg: "successDeleted",
                    msgi18n: true,
                });
    
            } catch (e) {
                callback({
                    ok: false,
                    msg: e.message,
                });
            }
        });
    
        socket.on("testRemoteBrowser", async (remoteBrowser, callback) => {
            try {
                checkLogin(socket);
                let check = await testRemoteBrowser(remoteBrowser.url);
                log.info("remoteBrowser", "Tested remote browser: " + check);
                let msg;
    
                if (check) {
                    msg = "Connected Successfully.";
                }
    
                callback({
                    ok: true,
                    msg,
                });
    
            } catch (e) {
                log.error("remoteBrowser", e);
    
                callback({
                    ok: false,
                    msg: e.message,
                });
            }
        });
    };