Flowise

Форк
0
43 строки · 1.9 Кб
1
import { StatusCodes } from 'http-status-codes'
2
import { Request, Response, NextFunction } from 'express'
3
import statsService from '../../services/stats'
4
import { chatType } from '../../Interface'
5
import { InternalFlowiseError } from '../../errors/internalFlowiseError'
6
import { getErrorMessage } from '../../errors/utils'
7

8
const getChatflowStats = async (req: Request, res: Response, next: NextFunction) => {
9
    try {
10
        if (typeof req.params === 'undefined' || !req.params.id) {
11
            throw new InternalFlowiseError(StatusCodes.PRECONDITION_FAILED, `Error: statsController.getChatflowStats - id not provided!`)
12
        }
13
        const chatflowid = req.params.id
14
        let chatTypeFilter = req.query?.chatType as chatType | undefined
15
        const startDate = req.query?.startDate as string | undefined
16
        const endDate = req.query?.endDate as string | undefined
17
        if (chatTypeFilter) {
18
            try {
19
                const chatTypeFilterArray = JSON.parse(chatTypeFilter)
20
                if (chatTypeFilterArray.includes(chatType.EXTERNAL) && chatTypeFilterArray.includes(chatType.INTERNAL)) {
21
                    chatTypeFilter = undefined
22
                } else if (chatTypeFilterArray.includes(chatType.EXTERNAL)) {
23
                    chatTypeFilter = chatType.EXTERNAL
24
                } else if (chatTypeFilterArray.includes(chatType.INTERNAL)) {
25
                    chatTypeFilter = chatType.INTERNAL
26
                }
27
            } catch (e) {
28
                throw new InternalFlowiseError(
29
                    StatusCodes.INTERNAL_SERVER_ERROR,
30
                    `Error: statsController.getChatflowStats - ${getErrorMessage(e)}`
31
                )
32
            }
33
        }
34
        const apiResponse = await statsService.getChatflowStats(chatflowid, chatTypeFilter, startDate, endDate, '', true)
35
        return res.json(apiResponse)
36
    } catch (error) {
37
        next(error)
38
    }
39
}
40

41
export default {
42
    getChatflowStats
43
}
44

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

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

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

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