Files
go-common/app/service/main/push/dao/jpush/callback.go
2019-04-22 18:49:16 +08:00

78 lines
1.8 KiB
Go

package jpush
const (
// CallbackTypeReceive 送达才回执
CallbackTypeReceive = callbackType(1)
// CallbackTypeClick 点击才回执
CallbackTypeClick = callbackType(2)
// CallbackTypeAll 送达和点击都回执
CallbackTypeAll = callbackType(3)
// StatusSwitchOn 回执时候通知栏开关状态:开
StatusSwitchOn = int(1)
// StatusSwitchOff 回执时候通知栏开关状态:关
StatusSwitchOff = int(2)
defaultCallbackURL = "https://api.bilibili.com/x/push/callback/jpush"
)
type callbackType int
// CallbackReq 消息回执请求体
type CallbackReq struct {
// URL 接受回执数据的URL
URL string `json:"url"`
// Type 需要的回执类型
Type callbackType `json:"type"`
// Params 携带的自定义参数
Params map[string]string `json:"params"`
}
// NewCallbackReq new Callback
func NewCallbackReq() *CallbackReq {
return &CallbackReq{
URL: defaultCallbackURL,
Type: CallbackTypeReceive,
Params: make(map[string]string),
}
}
// SetURL 设置接收回执的URL
func (cb *CallbackReq) SetURL(url string) {
if url == "" {
return
}
cb.URL = url
}
// SetType 设置需要回执的类型
func (cb *CallbackReq) SetType(typ callbackType) {
cb.Type = typ
}
// SetParam 设置自定义参数
func (cb *CallbackReq) SetParam(m map[string]string) {
if m == nil {
return
}
cb.Params = m
}
// CallbackReply 消息回执接收体
type CallbackReply struct {
// Token device token
Token string `json:"registration_id"`
// Platform android or ios
Platform string `json:"platform"`
// Time 消息送达或点击的秒级时间戳
Time int64 `json:"sent_time"`
// Switch 通知栏消息开关
Switch bool `json:"notification_state"`
// Type 送达或点击
Type callbackType `json:"callback_type"`
// Channel 下发通道
Channel int `json:"channel"`
// Params 自定义参数
Params map[string]string `json:"params"`
}