package response

import (
	"github.com/gogf/gf/net/ghttp"
)

// JsonResponse 数据返回通用json数据结构
type JsonResponse struct {
	Code    int         `json:"code"`    // 服务器返回状态码
	Message string      `json:"message"` // 错误提示信息
	Data    interface{} `json:"data"`    // 返回数据（业务接口定义具体数据结构）
}

// Json 标准返回结果数据封装
func Json(r *ghttp.Request, code int, message string, data ...interface{}) {
	responseDate := interface{}(nil)
	if len(data) > 0 {
		responseDate = data[0]
	}
	r.Response.WriteJson(JsonResponse{
		Code:    code,
		Message: message,
		Data:    responseDate,
	})
}

// JsonExit 返回json并推出当前http请求
func JsonExit(r *ghttp.Request, err int, msg string, data ...interface{}) {
	Json(r, err, msg, data)
	r.Exit()
}
