CloudScrapy / routes / v1 / executionsRoutes.js
executionsRoutes.js
Raw
const router = require('express').Router();
const BrowserServiceApi = require('../../components/engineBrowserService')
const EngineController = require('../../controllers/executionController')
const {isRoot, verifyToken} = require('../../middlewares/middlewares')

router.post('/execute', verifyToken, async function (req, res) {
     /*	#swagger.auto = true
        #swagger.tags = ['Executions']
        #swagger.description = 'Execute a set of instructions in a new browserContext of the user's browser'
        #swagger.security = [{"apiKeyAuth": []}]
        #swagger.produces = ['application/json']
        #swagger.consumes = ['application/json']
        #swagger.requestBody['obj'] = {
            required: true,
            schema: { $ref: '#/definitions/Execution' }
        }
        #swagger.responses[500] = {
            schema:{ $ref: "#/definitions/ExecutionResponseError" }
         }
        #swagger.responses[401] = {
            schema:{ $ref: "#/definitions/ErrorLogin" }
        }
         #swagger.responses[400] = {
            schema:{ $ref: "#/definitions/ErrorBadRequest" }
        }
        #swagger.responses[429] = {
            schema:{ $ref: "#/definitions/ToManyRequests" }
        }
        #swagger.responses[200] = {
            schema:{ $ref: "#/definitions/ExecutionResponse" }
        }

     */
    const browser = await BrowserServiceApi.getBrowserInstance()
    await EngineController.execute(req, res, browser)
});

router.post('/solve-action-required', verifyToken,async function (req, res) {
    /* 	#swagger.auto = true
        #swagger.tags = ['Executions']
        #swagger.description = 'Execute a set of instructions to solve action require in a browserContext by browserContext id'
        #swagger.security = [{"apiKeyAuth": []}]
        #swagger.produces = ['application/json']
        #swagger.consumes = ['application/json']
        #swagger.requestBody['obj'] = {
                required: true,
                schema: { $ref: '#/definitions/ActionRequiredExecution' }
            }
        #swagger.responses[500] = {
            schema:{ $ref: "#/definitions/ExecutionResponseError" }
         }
        #swagger.responses[401] = {
            schema:{ $ref: "#/definitions/ErrorLogin" }
        }
        #swagger.responses[400] = {
            schema:{ $ref: "#/definitions/ErrorBadRequest" }
        }
        #swagger.responses[404] = {
            schema:{ $ref: "#/definitions/ErrorNotFound" }
        }
        #swagger.responses[200] = {
            schema:{ $ref: "#/definitions/ExecutionResponse" }
        }
    */
    const browser = await BrowserServiceApi.getBrowserInstance()
    await EngineController.solveActionRequired(req, res, browser)
});

router.delete('/close-context/:contextId', [verifyToken, isRoot], async function (req, res) {
    /* 	#swagger.auto = true
        #swagger.tags = ['Executions']
        #swagger.description = 'Force browserContext to close and deleted if exist'
        #swagger.security = [{"apiKeyAuth": []}]
        #swagger.produces = ['application/json']
        #swagger.consumes = ['application/json']
        #swagger.parameters['contextId'] = {
            in: 'path',
            description: 'Context ID.',
            required: true,
            type: 'string'
        }
        #swagger.responses[500] = {
            schema:{ $ref: "#/definitions/ExecutionResponseError" }
         }
         #swagger.responses[403] = {
            schema:{ $ref: "#/definitions/ErrorForbidden" }
         }
         #swagger.responses[404] = {
            schema:{ $ref: "#/definitions/ErrorNotFound" }
         }
        #swagger.responses[401] = {
            schema:{ $ref: "#/definitions/ErrorLogin" }
        }
        #swagger.responses[200] = {
            schema:{ $ref: "#/definitions/ExecutionCloseResponse" }
        }
    */
    const browser = await BrowserServiceApi.getBrowserInstance()
    await EngineController.closeContext(req, res, browser)
});

router.get('/all-browser-contexts', isRoot, verifyToken, async function (req, res) {
    /* 	#swagger.auto = true
        #swagger.tags = ['Executions']
        #swagger.description = 'Get all active browser contexts'
        #swagger.security = [{"apiKeyAuth": []}]
        #swagger.produces = ['application/json']

        #swagger.responses[500] = {
            schema:{ $ref: "#/definitions/ErrorInternalServer" }
        }
        #swagger.responses[403] = {
            schema:{ $ref: "#/definitions/ErrorForbidden" }
        }
        #swagger.responses[401] = {
            schema:{ $ref: "#/definitions/ErrorLogin" }
        }
        #swagger.responses[200] = {
            schema:{ $ref: "#/definitions/AllBrowserContextsResponse" }
        }
    */
    const browser = await BrowserServiceApi.getBrowserInstance()
    await EngineController.getAllBrowserContexts(req, res, browser)
});

router.get('/user-browser-contexts/:userId', isRoot, verifyToken, async function (req, res) {
    /* 	#swagger.auto = true
        #swagger.tags = ['Executions']
        #swagger.description = 'Get all active browser contexts by user id'
        #swagger.security = [{"apiKeyAuth": []}]
        #swagger.produces = ['application/json']

        #swagger.responses[500] = {
            schema:{ $ref: "#/definitions/ErrorInternalServer" }
        }
        #swagger.responses[403] = {
            schema:{ $ref: "#/definitions/ErrorForbidden" }
        }
        #swagger.responses[401] = {
            schema:{ $ref: "#/definitions/ErrorLogin" }
        }
        #swagger.responses[200] = {
            schema:{ $ref: "#/definitions/AllBrowserContextsResponse" }
        }
    */
    const browser = await BrowserServiceApi.getBrowserInstance()
    await EngineController.getBrowserContextsByUserId(req, res, browser)
});


module.exports = router;