feat: 完成一般消息通知能力的开发

This commit is contained in:
2026-08-12 11:42:08 +08:00
commit 778c46a691
17 changed files with 2470 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
package notice
import (
"errors"
"fmt"
)
var (
ErrUnsupportedChannel = errors.New("notice: unsupported channel")
ErrChannelNotConfigured = errors.New("notice: channel not configured")
ErrInvalidConfig = errors.New("notice: invalid config")
ErrInvalidMessage = errors.New("notice: invalid message")
ErrInvalidZapConfig = errors.New("notice: invalid zap config")
)
type HTTPError struct {
Channel Channel `json:"channel" dc:"消息渠道"`
StatusCode int `json:"status_code" dc:"HTTP 响应状态码"`
Body string `json:"body,omitempty" dc:"HTTP 响应正文"`
}
func (e *HTTPError) Error() string {
return fmt.Sprintf("notice: %s webhook returned HTTP %d", e.Channel, e.StatusCode)
}
type PlatformError struct {
Channel Channel `json:"channel" dc:"消息渠道"`
Code string `json:"code" dc:"平台业务错误码"`
Message string `json:"message" dc:"平台业务错误信息"`
}
func (e *PlatformError) Error() string {
return fmt.Sprintf("notice: %s webhook failed: code=%s message=%s", e.Channel, e.Code, e.Message)
}