Flowise

Форк
0
41 строка · 1.7 Кб
1
import { Request, Response, NextFunction } from 'express'
2
import { getRunningExpressApp } from '../../utils/getRunningExpressApp'
3
import { InternalFlowiseError } from '../../errors/internalFlowiseError'
4
import { StatusCodes } from 'http-status-codes'
5

6
// Returns specific component node icon via name
7
const getSingleNodeIcon = async (req: Request, res: Response, next: NextFunction) => {
8
    try {
9
        const appServer = getRunningExpressApp()
10
        if (Object.prototype.hasOwnProperty.call(appServer.nodesPool.componentNodes, req.params.name)) {
11
            const nodeInstance = appServer.nodesPool.componentNodes[req.params.name]
12
            if (nodeInstance.icon === undefined) {
13
                throw new InternalFlowiseError(
14
                    StatusCodes.NOT_FOUND,
15
                    `Error: nodeIconController.getSingleNodeIcon - Node ${req.params.name} icon not found`
16
                )
17
            }
18

19
            if (nodeInstance.icon.endsWith('.svg') || nodeInstance.icon.endsWith('.png') || nodeInstance.icon.endsWith('.jpg')) {
20
                const filepath = nodeInstance.icon
21
                res.sendFile(filepath)
22
            } else {
23
                throw new InternalFlowiseError(
24
                    StatusCodes.PRECONDITION_FAILED,
25
                    `Error: nodeIconController.getSingleNodeIcon - Node ${req.params.name} icon is missing icon`
26
                )
27
            }
28
        } else {
29
            throw new InternalFlowiseError(
30
                StatusCodes.NOT_FOUND,
31
                `Error: nodeIconController.getSingleNodeIcon - Node ${req.params.name} not found`
32
            )
33
        }
34
    } catch (error) {
35
        next(error)
36
    }
37
}
38

39
export default {
40
    getSingleNodeIcon
41
}
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.