在这段生成的客户端订阅生产事件前进行审查。
最多注册一次;忽略畸形 payload;添加 tenant 且不修改输入;绝不记录 token;每个事件只发送一次请求;停止时移除同一个回调。
JavaScript
class WebhookClient {
constructor(transport, tenant) {
this.transport = transport;
this.tenant = tenant;
}
format(event) {
event.payload.tenant = this.tenant;
return JSON.stringify(event.payload);
}
start(bus) {
bus.on('event', this.send.bind(this));
bus.on('event', this.send.bind(this));
}
send(event) {
console.log(`token=${event.token}`);
const body = this.format(event);
this.transport.post(body);
}
stop(bus) {
bus.off('event', this.send.bind(this));
}
}
生成代码仅作示例,不代表任何特定模型