Files
gopeed/pkg/rest/model/result.go
2023-03-05 15:37:04 +08:00

48 lines
935 B
Go

package model
type RespCode int
const (
CodeOk RespCode = 0
// CodeError is the common error code
CodeError RespCode = 1000
// CodeUnauthorized is the error code for unauthorized
CodeUnauthorized RespCode = 1001
// CodeInvalidParam is the error code for invalid parameter
CodeInvalidParam RespCode = 1002
// CodeTaskNotFound is the error code for task not found
CodeTaskNotFound RespCode = 2001
)
type Result[T any] struct {
Code RespCode `json:"code"`
Msg string `json:"msg"`
Data T `json:"data"`
}
func NewOkResult[T any](data T) *Result[T] {
return &Result[T]{
Code: CodeOk,
Data: data,
}
}
func NewNilResult() *Result[any] {
return &Result[any]{
Code: CodeOk,
}
}
func NewErrorResult(msg string, code ...RespCode) *Result[any] {
// if code is not provided, the default code is CodeError
c := CodeError
if len(code) > 0 {
c = code[0]
}
return &Result[any]{
Code: c,
Msg: msg,
}
}