Merge pull request #59 from suntong/master

Standardize error messages
This commit is contained in:
Ivy 2021-08-02 11:46:44 +08:00 committed by GitHub
commit 15aecd33dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 49 additions and 25 deletions

4
bot.go
View File

@ -139,7 +139,7 @@ func (b *Bot) Login() error {
b.ScanCallBack(resp.Raw)
}
case StatusTimeout:
return errors.New("login time out")
return ErrLoginTimeout
case StatusWait:
continue
}
@ -307,7 +307,7 @@ func (b *Bot) MessageOnError(h func(err error)) {
// DumpHotReloadStorage 写入HotReloadStorage
func (b *Bot) DumpHotReloadStorage() error {
if b.HotReloadStorage == nil {
return errors.New("HotReloadStorage can be nil")
return errors.New("HotReloadStorage can not be nil")
}
cookies := b.Caller.Client.GetCookieMap()
item := HotReloadStorageItem{

View File

@ -84,8 +84,8 @@ func (c *Caller) GetLoginInfo(body []byte) (*LoginInfo, error) {
resp, err := c.Client.GetLoginInfo(path.String())
if err != nil {
uErr, ok := err.(*url.Error)
if ok && (uErr.Err.Error() == missLocationHeader.Error()) {
return nil, loginForbiddenError
if ok && (uErr.Err.Error() == ErrMissLocationHeader.Error()) {
return nil, ErrLoginForbiddenError
}
return nil, err
}

View File

@ -116,9 +116,10 @@ const (
// errors
var (
noSuchUserFoundError = errors.New("no such user found")
missLocationHeader = errors.New("301 response missing Location header")
loginForbiddenError = errors.New("login forbidden")
ErrNoSuchUserFoundError = errors.New("no such user found")
ErrMissLocationHeader = errors.New("301 response missing Location header")
ErrLoginForbiddenError = errors.New("login forbidden")
ErrLoginTimeout = errors.New("login timeout")
)
// ALL 跟search函数搭配

View File

@ -20,6 +20,28 @@ type LoginInfo struct {
PassTicket string `xml:"pass_ticket"`
}
// errors
const (
errParamError = "param error"
errTicketError = "ticket error"
errLoginEnvError = "login env error"
errLoginFailedWarn = "failed login warn"
errLoginFailedCheck = "failed login check"
errCookieInvalidError = "cookie invalid error"
errOptTooOften = "opt too often"
)
var (
ErrParamError = errors.New(errParamError)
ErrTicketError = errors.New(errTicketError)
ErrLoginEnvError = errors.New(errLoginEnvError)
ErrLoginFailedWarn = errors.New(errLoginFailedWarn)
ErrLoginFailedCheck = errors.New(errLoginFailedCheck)
ErrCookieInvalidError = errors.New(errCookieInvalidError)
ErrOptTooOften = errors.New(errOptTooOften)
ErrBaseResponseError error
)
func (l LoginInfo) Ok() bool {
return l.Ret == 0
}
@ -57,21 +79,22 @@ func getResponseErrorWithRetCode(code int) error {
case 0:
return nil
case 1:
return errors.New("param error")
return ErrParamError
case -14:
return errors.New("ticket error")
return ErrTicketError
case 1100:
return errors.New("not login warn")
return ErrLoginFailedWarn
case 1101:
return errors.New("not login check")
return ErrLoginFailedCheck
case 1102:
return errors.New("cookie invalid error")
return ErrCookieInvalidError
case 1203:
return errors.New("login env error")
return ErrLoginEnvError
case 1205:
return errors.New("opt too often")
return ErrOptTooOften
default:
return fmt.Errorf("base response ret code %d", code)
ErrBaseResponseError = fmt.Errorf("base response ret code %d", code)
return ErrBaseResponseError
}
}
@ -147,19 +170,19 @@ func (s *SyncCheckResponse) Error() string {
case "0":
return ""
case "1":
return "param error"
return errParamError
case "-14":
return "ticker error"
return errTicketError
case "1100":
return "not login warn"
return errLoginFailedWarn
case "1101":
return "not login check"
return errLoginFailedCheck
case "1102":
return "cookie invalid error"
return errCookieInvalidError
case "1203":
return "login env error"
return errLoginEnvError
case "1205":
return "opt too often"
return errOptTooOften
default:
return fmt.Sprintf("sync check response error code %s", s.RetCode)
}

View File

@ -80,7 +80,7 @@ func (m *Message) SenderInGroup() (*User, error) {
}
users := group.MemberList.SearchByUserName(1, m.senderInGroupUserName)
if users == nil {
return nil, noSuchUserFoundError
return nil, ErrNoSuchUserFoundError
}
users.init(m.Bot.self)
return users.First(), nil
@ -94,14 +94,14 @@ func (m *Message) Receiver() (*User, error) {
} else {
users := sender.MemberList.SearchByUserName(1, m.ToUserName)
if users == nil {
return nil, noSuchUserFoundError
return nil, ErrNoSuchUserFoundError
}
return users.First(), nil
}
} else {
users := m.Bot.self.MemberList.SearchByUserName(1, m.ToUserName)
if users == nil {
return nil, noSuchUserFoundError
return nil, ErrNoSuchUserFoundError
}
return users.First(), nil
}