123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package toolkit
- const (
- // ErrOk OK
- ErrOk = 0
- // ErrNotFound 404 route not found
- ErrNotFound = 1001
- // ErrException 500
- ErrException = 1002
- // ErrBadRequest 400 route params error
- ErrBadRequest = 1003
- // ErrMethodNotAllowed 405
- ErrMethodNotAllowed = 1004
- // ErrParamsError 415
- ErrParamsError = 1005
- // ErrUnAuthorized 401
- ErrUnAuthorized = 1006
- // ErrDataNotFound 404
- ErrDataNotFound = 1007
- // ErrNotAllowed 405
- ErrNotAllowed = 1008
- // ErrDataExists 400
- ErrDataExists = 1009
- // ErrDataValidate 403
- ErrDataValidate = 1010
- // VarUserAuthorization oauth token
- VarUserAuthorization = `access_token`
- // HTTPHeaderAuthorization HTTP header Authorization
- HTTPHeaderAuthorization = `Authorization`
- )
- var (
- statusMessage map[int]string
- )
- // ReplyData define API output data
- type ReplyData struct {
- Status int `json:"status" xml:"status"` // Status code
- Message string `json:"message" xml:"message"` // Message description
- Errs map[string]string `json:"errors,omitempty" xml:"errors,omitempty"` // Errs errors
- Total int `json:"total,omitempty" xml:"total,omitempty"` // Total data total
- List interface{} `json:"rows,omitempty" xml:"rows,omitempty"` // List data list
- Data interface{} `json:"data,omitempty" xml:"data,omitempty"` // Data data attribute
- }
- func init() {
- statusMessage = make(map[int]string)
- statusMessage[ErrOk] = `ok`
- statusMessage[ErrNotFound] = `Not found`
- statusMessage[ErrException] = `Exception`
- statusMessage[ErrBadRequest] = `Routing parameter error`
- statusMessage[ErrMethodNotAllowed] = `Method not allowed`
- statusMessage[ErrParamsError] = `Parameter or format error`
- statusMessage[ErrUnAuthorized] = `Not sign in or session has expired`
- statusMessage[ErrDataNotFound] = `Data not found`
- statusMessage[ErrNotAllowed] = `No access`
- statusMessage[ErrDataExists] = `Data exists`
- statusMessage[ErrDataValidate] = `Data verification failed`
- }
- // NewReplyData creates and return ReplyData with status and message
- func NewReplyData(status int) *ReplyData {
- var (
- text string
- exists bool
- )
- if text, exists = statusMessage[status]; !exists {
- text = `incorrect data type`
- }
- return &ReplyData{
- Status: status,
- Message: text,
- }
- }
- // OkReplyData creates and return ReplyData with ok
- func OkReplyData() *ReplyData {
- message, _ := statusMessage[ErrOk]
- return &ReplyData{
- Status: ErrOk,
- Message: message,
- }
- }
- // ErrReplyData creates and return ReplyData with error and message
- func ErrReplyData(status int, message string) *ReplyData {
- text, _ := statusMessage[status]
- errs := map[string]string{
- "message": message,
- }
- return &ReplyData{
- Status: status,
- Message: text,
- Errs: errs,
- }
- }
- // ErrorsReplyData creates and return ReplyData with errors
- func ErrorsReplyData(status int, errors map[string]string) *ReplyData {
- message, _ := statusMessage[status]
- return &ReplyData{
- Status: status,
- Message: message,
- Errs: errors,
- }
- }
- // RowsReplyData creates and return ReplyData with total and list
- func RowsReplyData(total int, rows interface{}) *ReplyData {
- message, _ := statusMessage[ErrOk]
- return &ReplyData{
- Status: ErrOk,
- Message: message,
- List: rows,
- Total: total,
- }
- }
- // RowReplyData creates and return ReplyData with attr row
- func RowReplyData(row interface{}) *ReplyData {
- message, _ := statusMessage[ErrOk]
- return &ReplyData{
- Status: ErrOk,
- Message: message,
- Data: row,
- }
- }
|