42 lines
781 B
Go
42 lines
781 B
Go
package base
|
||
|
||
import (
|
||
"fmt"
|
||
)
|
||
|
||
// BaseResponse[T any]
|
||
// @description: 基础返回结构
|
||
type Response[T any] struct {
|
||
Success bool `json:"Success"`
|
||
Code int `json:"Code"`
|
||
Message string `json:"Message"`
|
||
Data T `json:"Data"`
|
||
}
|
||
|
||
// IsSuccess
|
||
// @description: 是否成功
|
||
// @receiver r
|
||
// @return bool
|
||
func (r Response[T]) IsSuccess() bool {
|
||
return r.Code == 0
|
||
}
|
||
|
||
// CheckError
|
||
// @description: 处理错误状态
|
||
// @receiver r
|
||
// @return error
|
||
func (r Response[T]) CheckError(err error) error {
|
||
if err != nil {
|
||
return err
|
||
}
|
||
|
||
if errMsg, ok := codeMap[r.Code]; ok {
|
||
return fmt.Errorf("[%d] %s - %s", r.Code, errMsg, r.Message)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
// EmptyResponse
|
||
// @description: 空响应,用于只需要状态码的API
|
||
type EmptyResponse struct{}
|