统一初始beego mvc 的方法
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
881 B

  1. package response
  2. import "reflect"
  3. type JsonResponseGenerator struct {
  4. Interface JsonInterface
  5. }
  6. func (j JsonResponseGenerator) NewJsonByDefaultSuccess(data ...interface{}) JsonInterface {
  7. return j.NewJson(true, 0, JsonMsgDefaultOk, data...)
  8. }
  9. func (j JsonResponseGenerator) NewJsonByDefaultFailed(data ...interface{}) JsonInterface {
  10. return j.NewJson(false, 1, JsonMsgDefaultFailed, data...)
  11. }
  12. func (j JsonResponseGenerator) NewJonsByFailed(code int, msg string) JsonInterface {
  13. return j.NewJson(false, code, msg)
  14. }
  15. func (j JsonResponseGenerator) NewJson(status bool, code int, msg string, data ...interface{}) JsonInterface {
  16. jPtr := reflect.New(reflect.TypeOf(j.Interface).Elem())
  17. if b, ok := jPtr.Interface().(JsonInterface); ok {
  18. b.SetStatus(status)
  19. b.SetCode(code)
  20. b.SetMessage(msg)
  21. if len(data) > 0 {
  22. b.SetData(data[0])
  23. }
  24. return b
  25. }
  26. return nil
  27. }