package resp import "net/http" type Error struct { Status int `json:"status"` Msg string `json:"msg"` Err error `json:"err"` Data any `json:"data"` } func (e *Error) Error() string { return e.Err.Error() } func (e *Error) _r() *res { data := &res{ Status: e.Status, Msg: e.Msg, Data: e.Data, Err: e.Err, } if data.Status < 0 || data.Status > 999 { data.Status = 500 } return data } func NewError(err error, args ...any) *Error { e := &Error{ Status: http.StatusInternalServerError, Err: err, } if len(args) > 0 { if status, ok := args[0].(int); ok { e.Status = status } } e.Msg = Msg(e.Status) if len(args) > 1 { if msg, ok := args[1].(string); ok { e.Msg = msg } } if len(args) > 2 { e.Data = args[2] } return e }