Flowise
1import { v4 as uuidv4 } from 'uuid'
2import { StatusCodes } from 'http-status-codes'
3import { getRunningExpressApp } from '../../utils/getRunningExpressApp'
4import { Lead } from '../../database/entities/Lead'
5import { ILead } from '../../Interface'
6import { InternalFlowiseError } from '../../errors/internalFlowiseError'
7import { getErrorMessage } from '../../errors/utils'
8
9const getAllLeads = async (chatflowid: string) => {
10try {
11const appServer = getRunningExpressApp()
12const dbResponse = await appServer.AppDataSource.getRepository(Lead).find({
13where: {
14chatflowid
15}
16})
17return dbResponse
18} catch (error) {
19throw new InternalFlowiseError(StatusCodes.INTERNAL_SERVER_ERROR, `Error: leadsService.getAllLeads - ${getErrorMessage(error)}`)
20}
21}
22
23const createLead = async (body: Partial<ILead>) => {
24try {
25const chatId = body.chatId ?? uuidv4()
26
27const newLead = new Lead()
28Object.assign(newLead, body)
29Object.assign(newLead, { chatId })
30
31const appServer = getRunningExpressApp()
32const lead = appServer.AppDataSource.getRepository(Lead).create(newLead)
33const dbResponse = await appServer.AppDataSource.getRepository(Lead).save(lead)
34return dbResponse
35} catch (error) {
36throw new InternalFlowiseError(StatusCodes.INTERNAL_SERVER_ERROR, `Error: leadsService.createLead - ${getErrorMessage(error)}`)
37}
38}
39
40export default {
41createLead,
42getAllLeads
43}
44