91 lines
2.3 KiB
Go
91 lines
2.3 KiB
Go
package event
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"github.com/open-dingtalk/dingtalk-stream-sdk-go/payload"
|
|
)
|
|
|
|
/**
|
|
* @Author linya.jj
|
|
* @Date 2023/4/26 17:15
|
|
*/
|
|
|
|
const (
|
|
DataFrameHeaderKEventId = "eventId"
|
|
DataFrameHeaderKEventBornTime = "eventBornTime"
|
|
DataFrameHeaderKEventCorpId = "eventCorpId"
|
|
DataFrameHeaderKEventType = "eventType"
|
|
DataFrameHeaderKEventUnifiedAppId = "eventUnifiedAppId"
|
|
)
|
|
|
|
type EventHeader struct {
|
|
EventId string `json:"eventId"`
|
|
EventBornTime int64 `json:"eventBornTime"`
|
|
EventCorpId string `json:"eventCorpId"`
|
|
EventType string `json:"eventType"`
|
|
EventUnifiedAppId string `json:"eventUnifiedAppId"`
|
|
}
|
|
|
|
func NewEventHeaderFromDataFrame(df *payload.DataFrame) *EventHeader {
|
|
if df == nil {
|
|
return &EventHeader{}
|
|
}
|
|
|
|
eventHeader := &EventHeader{
|
|
EventId: df.GetHeader(DataFrameHeaderKEventId),
|
|
EventBornTime: 0,
|
|
EventCorpId: df.GetHeader(DataFrameHeaderKEventCorpId),
|
|
EventType: df.GetHeader(DataFrameHeaderKEventType),
|
|
EventUnifiedAppId: df.GetHeader(DataFrameHeaderKEventUnifiedAppId),
|
|
}
|
|
|
|
if ts, err := strconv.ParseInt(df.GetHeader(DataFrameHeaderKEventBornTime), 10, 64); err == nil {
|
|
eventHeader.EventBornTime = ts
|
|
}
|
|
|
|
return eventHeader
|
|
}
|
|
|
|
type EventProcessStatusType string
|
|
|
|
var (
|
|
EventProcessStatusKSuccess EventProcessStatusType = "SUCCESS"
|
|
EventProcessStatusKLater EventProcessStatusType = "LATER"
|
|
)
|
|
|
|
type EventProcessResult struct {
|
|
Status EventProcessStatusType `json:"status"`
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
func NewEventProcessResultSuccess() *EventProcessResult {
|
|
return &EventProcessResult{
|
|
Status: EventProcessStatusKSuccess,
|
|
Message: "success",
|
|
}
|
|
}
|
|
|
|
func NewEventProcessResultLater() *EventProcessResult {
|
|
return &EventProcessResult{
|
|
Status: EventProcessStatusKLater,
|
|
Message: "later",
|
|
}
|
|
}
|
|
|
|
func NewSuccessResponse() (*payload.DataFrameResponse, error) {
|
|
response := payload.NewSuccessDataFrameResponse()
|
|
if err := response.SetJson(NewEventProcessResultSuccess()); err != nil {
|
|
return nil, err
|
|
}
|
|
return response, nil
|
|
}
|
|
|
|
func NewLaterResponse() (*payload.DataFrameResponse, error) {
|
|
response := payload.NewSuccessDataFrameResponse()
|
|
if err := response.SetJson(NewEventProcessResultLater()); err != nil {
|
|
return nil, err
|
|
}
|
|
return response, nil
|
|
}
|