package service

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

const (
	Failed = 1
	Ok     = 0
)

// Response 基础序列化器
type Response struct {
	Status int         `json:"status"`
	Data   interface{} `json:"data"`
	Msg    string      `json:"msg"`
	Code   int         `json:"code"`
}

// Success Success(c,someMap) datas传结构体中文会有乱码问题
func Success(c *gin.Context, datas ...interface{}) {
	var data interface{}
	if datas != nil {
		data = datas[0]
	} else {
		data = struct{}{}
	}
	c.JSON(http.StatusOK, Response{
		Status: Ok,
		Code:   Ok,
		Data:   data,
		Msg:    "ok",
	})
	c.Abort()
}

// Error 统一错误返回
func Error(c *gin.Context, err error) {

	errMsg := ""
	if err != nil {
		errMsg = err.Error()
	}

	c.JSON(http.StatusOK, Response{
		Code: Failed,
		Msg:  errMsg,
		Data: struct{}{},
	})

	c.Abort()
}