add MakeWebhook
This commit is contained in:
parent
faebc8a665
commit
02ff9664f1
|
|
@ -0,0 +1,48 @@
|
|||
import { INode, INodeData, INodeParams } from '../../../src/Interface'
|
||||
import { getBaseClasses } from '../../../src/utils'
|
||||
import { MakeWebhookTool } from './core'
|
||||
|
||||
class MakeWebhook_Tools implements INode {
|
||||
label: string
|
||||
name: string
|
||||
description: string
|
||||
type: string
|
||||
icon: string
|
||||
category: string
|
||||
baseClasses: string[]
|
||||
inputs: INodeParams[]
|
||||
|
||||
constructor() {
|
||||
this.label = 'Make.com Webhook'
|
||||
this.name = 'makeWebhook'
|
||||
this.type = 'MakeWebhook'
|
||||
this.icon = 'make.png'
|
||||
this.category = 'Tools'
|
||||
this.description = 'Execute webhook calls on Make.com'
|
||||
this.inputs = [
|
||||
{
|
||||
label: 'Webhook Url',
|
||||
name: 'url',
|
||||
type: 'string',
|
||||
placeholder: 'https://hook.eu1.make.com/abcdefg'
|
||||
},
|
||||
{
|
||||
label: 'Tool Description',
|
||||
name: 'desc',
|
||||
type: 'string',
|
||||
rows: 4,
|
||||
placeholder: 'Useful when need to send message to Discord'
|
||||
}
|
||||
]
|
||||
this.baseClasses = [this.type, ...getBaseClasses(MakeWebhookTool)]
|
||||
}
|
||||
|
||||
async init(nodeData: INodeData): Promise<any> {
|
||||
const url = nodeData.inputs?.url as string
|
||||
const desc = nodeData.inputs?.desc as string
|
||||
|
||||
return new MakeWebhookTool(url, desc, 'GET')
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { nodeClass: MakeWebhook_Tools }
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
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}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
Loading…
Reference in New Issue