40 lines
1.3 KiB
Go
40 lines
1.3 KiB
Go
package errors
|
||
|
||
// 应用错误码
|
||
const (
|
||
CodeSuccess = 0 // 成功
|
||
CodeInternalError = 1000 // 内部服务器错误
|
||
CodeMissingToken = 1001 // 缺失认证令牌
|
||
CodeInvalidToken = 1002 // 令牌无效或已过期
|
||
CodeTooManyRequests = 1003 // 请求过于频繁(限流)
|
||
CodeAuthServiceUnavailable = 1004 // 认证服务不可用(Redis 宕机)
|
||
)
|
||
|
||
// ErrorMessage 表示双语错误消息
|
||
type ErrorMessage struct {
|
||
EN string
|
||
ZH string
|
||
}
|
||
|
||
// errorMessages 将错误码映射到双语消息
|
||
var errorMessages = map[int]ErrorMessage{
|
||
CodeSuccess: {"Success", "成功"},
|
||
CodeInternalError: {"Internal server error", "内部服务器错误"},
|
||
CodeMissingToken: {"Missing authentication token", "缺失认证令牌"},
|
||
CodeInvalidToken: {"Invalid or expired token", "令牌无效或已过期"},
|
||
CodeTooManyRequests: {"Too many requests", "请求过于频繁"},
|
||
CodeAuthServiceUnavailable: {"Authentication service unavailable", "认证服务不可用"},
|
||
}
|
||
|
||
// GetMessage 根据错误码和语言返回错误消息
|
||
func GetMessage(code int, lang string) string {
|
||
msg, ok := errorMessages[code]
|
||
if !ok {
|
||
return "Unknown error"
|
||
}
|
||
if lang == "zh" || lang == "zh-CN" {
|
||
return msg.ZH
|
||
}
|
||
return msg.EN
|
||
}
|