diff --git a/internal/access/http_context.go b/internal/access/http_context.go index 7df039f..3f93c5a 100644 --- a/internal/access/http_context.go +++ b/internal/access/http_context.go @@ -2,10 +2,12 @@ package access import ( "framework_v2/internal/providers" + "github.com/gin-gonic/gin" ) type User providers.JwtIDToken type Metadata struct { + Http *gin.Context User User } diff --git a/internal/providers/gin.go b/internal/providers/gin.go index 6b7a5a3..b37f84f 100644 --- a/internal/providers/gin.go +++ b/internal/providers/gin.go @@ -28,22 +28,22 @@ const ( OPTIONS ) -type HandlerFunc func(c *gin.Context, metadata *access.Metadata) +type HandlerFunc func(metadata *access.Metadata) -func HandleRoute(method httpMethod, relativePath string, handlers ...HandlerFunc) { +func HandleRoute(method httpMethod, relativePath string, controller HandlerFunc, middlewares ...gin.HandlerFunc) { access.Router.Handle(method.String(), relativePath, func(c *gin.Context) { - handleWithMetadata(c, handlers...) + for _, middleware := range middlewares { + middleware(c) + } + + handleWithMetadata(c, controller) }) } -func GetUser(c *gin.Context) *access.User { - return &access.User{} -} - -func handleWithMetadata(c *gin.Context, handlers ...HandlerFunc) { - var metadata = &access.Metadata{} - - for _, handler := range handlers { - handler(c, metadata) +func handleWithMetadata(c *gin.Context, controller HandlerFunc) { + var metadata = &access.Metadata{ + Http: c, } + + controller(metadata) }