event/abstract/pre_send_event_handler.go

70 lines
1.8 KiB
Go

// Package abstract ...
//
// Description : 事件发送前预处理接口约束
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2023-02-01 14:06
package abstract
import (
"net/http"
)
// IPreSendHandler ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:06 2023/2/1
type IPreSendHandler interface {
// GetEventID 为每一条事件生成唯一的ID, 此方法若返回空值, 则会自动生成一个随机的md5字符串作为事件ID
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:10 2023/2/1
GetEventID() string
// GetRequestParam 构造 base info 时, 可能需要从请求参数中提取公共数据
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:13 2023/2/1
GetRequestParam() map[string]interface{}
// GetRequestHeader ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:14 2023/2/1
// 构造 base info 时, 可能需要从请求参数中提取公共数据
GetRequestHeader() http.Header
// GetResponseData 响应数据
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:15 2023/2/1
GetResponseData() map[string]interface{}
// GetExtensionData 获取扩展数据
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:19 2023/2/1
GetExtensionData() map[string]interface{}
// GetEventData 获取事件数据, 建议返回结构体或者结构体指针, 内部会自动补齐缺失的数据
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:16 2023/2/1
GetEventData() interface{}
// NeedSend 判断是否需要发送事件, 若不需要发送, 可在第一个返回值中记录不需要发送的原因
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:24 2023/2/2
NeedSend() (map[string]interface{}, bool)
}