package resp

// Response 数据返回结构体
type Response struct {
	Status int         `json:"status"` // 返回状态值
	Msg    string      `json:"msg"`    //返回的提示语
	Data   interface{} `json:"data"`   //返回数据
}

/*// Success 正确返回
func Success(data interface{}, msg ...string) *Response {
	response := Response{
		Status: 200,
		Data:   data,
		Msg:    "操作成功",
	}
	if len(msg) > 0 {
		response.Msg = msg[0]
	}
	return &response
}

// Success 正确返回
func Ok(data interface{}) *Response {
	response := Response{
		Status: 200,
		Data:   data,
		Msg:    "操作成功",
	}
	return &response
}

// ErrorResp 错误返回
func ErrorResp(data ...interface{}) *Response {
	response := Response{
		Status: 500,
		Msg:    "操作失败",
		Data:   nil,
	}
	for _, value := range data {
		switch value.(type) {
		case string:
			response.Msg = value.(string)
		case int:
			response.Status = value.(int)
		case interface{}:
			response.Data = value.(interface{})
		}
	}
	return &response
}

func Error(c *frame.Context, data ...interface{}) {
	response := Response{
		Status: 500,
		Msg:    "操作失败",
		Data:   nil,
	}
	for _, value := range data {
		switch value.(type) {
		case string:
			response.Msg = value.(string)
		case int:
			response.Status = value.(int)
		case interface{}:
			response.Data = value.(interface{})
		}
	}
	c.JSON(200, response)
	return
}

func ParamsError(c *frame.Context, err error, req interface{}) {
	response := Response{
		Status: 500,
		Msg:    frame.GetError(err.(validator.ValidationErrors), req),
		Data:   nil,
	}
	c.JSON(200, response)
	return
}

func ParamError(c *frame.Context, data ...interface{}) {
	response := Response{
		Status: 500,
		Msg:    "参数绑定异常",
		Data:   nil,
	}
	for _, value := range data {
		switch value.(type) {
		case string:
			response.Msg = value.(string)
		case int:
			response.Status = value.(int)
		case interface{}:
			response.Data = value.(interface{})
		}
	}
	c.JSON(400, response)
	return
}

func OK(c *frame.Context, data ...interface{}) {
	response := Response{
		Status: 200,
		Msg:    "操作成功",
		Data:   nil,
	}
	for _, datum := range data {
		switch datum.(type) {
		case string:
			response.Msg = datum.(string)
		case interface{}:
			response.Data = datum.(interface{})
		}
	}
	c.JSON(200, response)
	return
}

func S(c *frame.Context, data ...interface{}) {
	response := Response{
		Status: 200,
		Msg:    "操作成功",
		Data:   nil,
	}
	for _, datum := range data {
		switch datum.(type) {
		case string:
			response.Msg = datum.(string)
		case interface{}:
			response.Data = datum.(interface{})
		}
	}
	c.JSON(200, response)
	return
}
*/