rohan13's picture
Flowise Changes
4114d85
import axios, { AxiosRequestConfig, Method } from 'axios'
import { Tool } from 'langchain/tools'
import { ICommonObject } from '../../../src/Interface'
export class MakeWebhookTool extends Tool {
private url: string
name: string
description: string
method: string
headers: ICommonObject
constructor(url: string, description: string, method = 'POST', headers: ICommonObject = {}) {
super()
this.url = url
this.name = 'make_webhook'
this.description = description ?? `useful for when you need to execute tasks on Make`
this.method = method
this.headers = headers
}
async _call(): Promise<string> {
try {
const axiosConfig: AxiosRequestConfig = {
method: this.method as Method,
url: this.url,
headers: {
...this.headers,
'Content-Type': 'application/json'
}
}
const response = await axios(axiosConfig)
return typeof response.data === 'object' ? JSON.stringify(response.data) : response.data
} catch (error) {
throw new Error(`HTTP error ${error}`)
}
}
}