perf: 自定义webhook显示详细的错误信息

pull/265/head
xiaojunnuo 2024-11-26 23:11:20 +08:00
parent e3553d4c8c
commit 3254afc756
2 changed files with 32 additions and 15 deletions

View File

@ -151,7 +151,10 @@ export function getCommonColumnDefine(crudExpose: any, typeRef: any, api: any) {
name: "api-test", name: "api-test",
action: "TestRequest" action: "TestRequest"
}, },
order: 999 order: 999,
col: {
span: 24
}
}, },
column: { column: {
show: false show: false

View File

@ -48,10 +48,11 @@ export class WebhookNotification extends BaseNotification {
title: 'Headers', title: 'Headers',
component: { component: {
name: 'a-textarea', name: 'a-textarea',
vModel: 'value',
rows: 3, rows: 3,
}, },
helper: '一行一个格式为key:value', helper: '一行一个格式为key:value',
required: true, required: false,
}) })
headers = ''; headers = '';
@ -83,18 +84,31 @@ export class WebhookNotification extends BaseNotification {
const data = JSON.parse(bodyStr); const data = JSON.parse(bodyStr);
const headers: any = {}; const headers: any = {};
this.headers.split('\n').forEach(item => { if (this.headers && this.headers.trim()) {
const [key, value] = item.trim().split(':'); this.headers.split('\n').forEach(item => {
headers[key] = value; item = item.trim();
}); if (item) {
await this.http.request({ const [key, value] = item.split(':');
url: this.webhook, headers[key] = value;
method: this.method, }
headers: { });
'Content-Type': `${this.contentType}; charset=UTF-8`, }
...headers,
}, try {
data: data, await this.http.request({
}); url: this.webhook,
method: this.method,
headers: {
'Content-Type': `${this.contentType}; charset=UTF-8`,
...headers,
},
data: data,
});
} catch (e) {
if (e.response?.data) {
throw new Error(e.message + ',' + JSON.stringify(e.response.data));
}
throw e;
}
} }
} }