github.com/zxysilent/utils@v0.3.1/reply.go (about)

     1  package utils
     2  
     3  // Reply  format
     4  // 统一返回格式
     5  type Reply struct {
     6  	Code int         `json:"code"`
     7  	Msg  string      `json:"msg"`
     8  	Data interface{} `json:"data,omitempty"`
     9  }
    10  
    11  // page format Message
    12  // 数据分页附加数据
    13  type page struct {
    14  	Count int         `json:"count"`
    15  	Items interface{} `json:"items"`
    16  }
    17  
    18  const (
    19  	codeSucc     int = 200 //正常
    20  	codeFail     int = 300 //失败
    21  	codeErrIpt   int = 310 //输入数据有误
    22  	codeErrOpt   int = 320 //无数据返回
    23  	codeErrDeny  int = 330 //没有权限
    24  	codeErrToken int = 340 //token错误
    25  	codeErrSvr   int = 350 //服务端错误
    26  	codeExt      int = 400 //其他约定,eg 更新token
    27  )
    28  
    29  func newReply(code int, msg string, data ...interface{}) (int, Reply) {
    30  	if len(data) > 0 {
    31  		return 200, Reply{
    32  			Code: code,
    33  			Msg:  msg,
    34  			Data: data[0],
    35  		}
    36  	}
    37  	return 200, Reply{
    38  		Code: code,
    39  		Msg:  msg,
    40  	}
    41  }
    42  
    43  // Succ 返回一个成功标识的结果格式
    44  func Succ(msg string, data ...interface{}) (int, Reply) {
    45  	return newReply(codeSucc, msg, data...)
    46  }
    47  
    48  // Fail 返回一个失败标识的结果格式
    49  func Fail(msg string, data ...interface{}) (int, Reply) {
    50  	return newReply(codeFail, msg, data...)
    51  }
    52  
    53  // Page 返回一个带有分页数据的结果格式
    54  func Page(msg string, items interface{}, count int) (int, Reply) {
    55  	return 200, Reply{
    56  		Code: codeSucc,
    57  		Msg:  msg,
    58  		Data: page{
    59  			Items: items,
    60  			Count: count,
    61  		},
    62  	}
    63  }
    64  
    65  // ErrIpt 返回一个输入错误的结果
    66  func ErrIpt(msg string, data ...interface{}) (int, Reply) {
    67  	return newReply(codeErrIpt, msg, data...)
    68  }
    69  
    70  // ErrOpt 返回一个输出错误的结果
    71  func ErrOpt(msg string, data ...interface{}) (int, Reply) {
    72  	return newReply(codeErrOpt, msg, data...)
    73  }
    74  
    75  // ErrDeny 返回一个没有权限的结果
    76  func ErrDeny(msg string, data ...interface{}) (int, Reply) {
    77  	return newReply(codeErrDeny, msg, data...)
    78  }
    79  
    80  // ErrToken 返回一个验证失败的结果
    81  func ErrToken(msg string, data ...interface{}) (int, Reply) {
    82  	return newReply(codeErrToken, msg, data...)
    83  }
    84  
    85  // ErrSvr 返回一个服务端错误的结果
    86  func ErrSvr(msg string, data ...interface{}) (int, Reply) {
    87  	return newReply(codeErrSvr, msg, data...)
    88  }
    89  
    90  // Ext 返回一个其他约定的结果
    91  func Ext(msg string, data ...interface{}) (int, Reply) {
    92  	return newReply(codeExt, msg, data...)
    93  }