1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package api
- import (
- "crm-api/pkg/lfshook"
- "fmt"
- "net/http"
- "runtime"
- "github.com/gin-gonic/gin"
- )
- var resp *Response
- func init() {
- resp = NewResponse()
- }
- type Response struct {
- Code int `json:"code"`
- Message string `json:"message"`
- Data interface{} `json:"data"`
- }
- func NewResponse() *Response {
- return &Response{}
- }
- func Success(ctx *gin.Context, data interface{}) { resp.Success(ctx, data) }
- func (r *Response) Success(ctx *gin.Context, data interface{}) {
- if data == nil {
- data = gin.H{}
- }
- ctx.JSON(http.StatusOK, Response{
- Code: 0,
- Message: "OK",
- Data: data,
- })
- }
- func Error(ctx *gin.Context, code int, message string) { resp.Error(ctx, code, message) }
- func (r *Response) Error(ctx *gin.Context, code int, message string) {
- // 调用信息
- msg := fmt.Sprintf("error msg: %s", message)
- pc, fileName, lineNumber, ok := runtime.Caller(2)
- if ok {
- msg = fmt.Sprintf("%s\n%s %s:%d", message, runtime.FuncForPC(pc).Name(), fileName, lineNumber)
- }
- lfshook.NewLogger().Error(msg)
- ctx.JSON(http.StatusOK, Response{
- Code: code,
- Message: message,
- Data: nil,
- })
- }
|