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