[feat] add pkgs, dockerfile, makefile
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
package context
|
||||
|
||||
import (
|
||||
"context"
|
||||
"go-api/pkg/response"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type C struct {
|
||||
*gin.Context
|
||||
}
|
||||
|
||||
type CustomHandler func(c *C)
|
||||
|
||||
func PatchContext(handler CustomHandler) gin.HandlerFunc {
|
||||
return func(ctx *gin.Context) {
|
||||
c := &C{
|
||||
Context: ctx,
|
||||
}
|
||||
handler(c)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *C) getContext() context.Context {
|
||||
return c.Request.Context()
|
||||
}
|
||||
|
||||
// Success
|
||||
// send success body to client
|
||||
func (c *C) Success(i ...interface{}) {
|
||||
r := response.Get(response.RespSuccess)
|
||||
|
||||
var resp interface{} = r.Body
|
||||
if len(i) > 0 {
|
||||
resp = i[0]
|
||||
}
|
||||
|
||||
c.AbortWithStatusJSON(r.Status, resp)
|
||||
}
|
||||
|
||||
func (c *C) DataFormat(code ...response.MessageCode) {
|
||||
r := response.Get(response.RespDataFormat, code...)
|
||||
c.AbortWithStatusJSON(r.Status, r.Body)
|
||||
}
|
||||
|
||||
func (c *C) NotFound(code ...response.MessageCode) {
|
||||
r := response.Get(response.RespNotFound, code...)
|
||||
c.AbortWithStatusJSON(r.Status, r.Body)
|
||||
}
|
||||
|
||||
func (c *C) Forbidden(code ...response.MessageCode) {
|
||||
r := response.Get(response.RespNotFound, code...)
|
||||
c.AbortWithStatusJSON(r.Status, r.Body)
|
||||
}
|
||||
|
||||
func (c *C) ServerError(code ...response.MessageCode) {
|
||||
r := response.Get(response.RespInternalError, code...)
|
||||
c.AbortWithStatusJSON(r.Status, r.Body)
|
||||
}
|
||||
|
||||
func (c *C) CustomResp(rt response.RespType, code response.MessageCode, data ...interface{}) {
|
||||
r := response.Get(rt)
|
||||
|
||||
if code != r.Body.MessageCode {
|
||||
r.Body.MessageCode, r.Body.Message = response.GetCodeMessage(code)
|
||||
}
|
||||
|
||||
var resp interface{} = r.Body
|
||||
if len(data) > 0 {
|
||||
resp = data[0]
|
||||
}
|
||||
|
||||
c.AbortWithStatusJSON(r.Status, resp)
|
||||
}
|
||||
Reference in New Issue
Block a user