diff --git a/internal/push/getui/push.go b/internal/push/getui/push.go index 79a67f98f..18197558a 100644 --- a/internal/push/getui/push.go +++ b/internal/push/getui/push.go @@ -7,6 +7,8 @@ import ( "Open_IM/pkg/utils" "bytes" "crypto/sha256" + "errors" + //"crypto/sha512" "encoding/hex" "encoding/json" @@ -18,6 +20,8 @@ import ( var ( GetuiClient *Getui + + TokenExpireError = errors.New("token expire") ) const ( @@ -68,7 +72,6 @@ type Notification struct { } type PushResp struct { - GetuiCommonResp } func newGetuiClient() *Getui { @@ -101,13 +104,16 @@ func (g *Getui) Push(userIDList []string, alert, detailContent, platform, operat } pushResp := PushResp{} err = g.request(PushURL, pushReq, token, &pushResp, operationID) + switch err { + case TokenExpireError: + _, err = g.getTokenAndSave2Redis(operationID) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "getTokenAndSave2Redis failed, ", err.Error()) + } + } if err != nil { return "", utils.Wrap(err, "push failed") } - log.NewDebug(operationID, utils.GetSelfFuncName(), "resp: ", pushResp) - if pushResp.Code == 10001 { - _, _ = g.getTokenAndSave2Redis(operationID) - } respBytes, err := json.Marshal(pushResp) return string(respBytes), utils.Wrap(err, "") } @@ -164,6 +170,9 @@ func (g *Getui) request(url string, content interface{}, token string, returnStr if err := json.Unmarshal(result, &commonResp); err != nil { return err } + if commonResp.Code == 10001 { + return TokenExpireError + } return nil }