github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/fiberserver/group.go (about) 1 package fiberserver 2 3 import ( 4 "github.com/gofiber/fiber/v2" 5 "github.com/ngocphuongnb/tetua/app/server" 6 ) 7 8 type Group struct { 9 *fiber.App 10 FGroup *fiber.Group 11 middlewares []server.Handler 12 } 13 14 func (g *Group) Use(handler server.Handler) { 15 g.middlewares = append(g.middlewares, handler) 16 } 17 18 func (g *Group) Group(prefix string, handlers ...server.Handler) server.Group { 19 var fiberHandlers []fiber.Handler 20 21 for _, handler := range handlers { 22 fiberHandlers = append(fiberHandlers, func(c *fiber.Ctx) error { 23 return handler(createContext(c)) 24 }) 25 } 26 27 gg := g.FGroup.Group(prefix, fiberHandlers...).(*fiber.Group) 28 29 return &Group{ 30 FGroup: gg, 31 App: g.App, 32 middlewares: g.middlewares, 33 } 34 } 35 36 func (g *Group) Get(path string, handler server.Handler, authConfigs ...*server.AuthConfig) { 37 authConfigs = append(authConfigs, &server.AuthConfig{Action: ""}) 38 g.FGroup.Get(path, transformHandlers([]server.Handler{handler}, g.middlewares...)...).Name(authConfigs[0].Action) 39 } 40 41 func (g *Group) Post(path string, handler server.Handler, authConfigs ...*server.AuthConfig) { 42 authConfigs = append(authConfigs, &server.AuthConfig{Action: ""}) 43 g.FGroup.Post(path, transformHandlers([]server.Handler{handler}, g.middlewares...)...).Name(authConfigs[0].Action) 44 } 45 46 func (g *Group) Put(path string, handler server.Handler, authConfigs ...*server.AuthConfig) { 47 authConfigs = append(authConfigs, &server.AuthConfig{Action: ""}) 48 g.FGroup.Put(path, transformHandlers([]server.Handler{handler}, g.middlewares...)...).Name(authConfigs[0].Action) 49 } 50 51 func (g *Group) Delete(path string, handler server.Handler, authConfigs ...*server.AuthConfig) { 52 authConfigs = append(authConfigs, &server.AuthConfig{Action: ""}) 53 g.FGroup.Delete(path, transformHandlers([]server.Handler{handler}, g.middlewares...)...).Name(authConfigs[0].Action) 54 } 55 56 func (g *Group) Patch(path string, handler server.Handler, authConfigs ...*server.AuthConfig) { 57 authConfigs = append(authConfigs, &server.AuthConfig{Action: ""}) 58 g.FGroup.Patch(path, transformHandlers([]server.Handler{handler}, g.middlewares...)...).Name(authConfigs[0].Action) 59 } 60 61 func (g *Group) Options(path string, handler server.Handler, authConfigs ...*server.AuthConfig) { 62 authConfigs = append(authConfigs, &server.AuthConfig{Action: ""}) 63 g.FGroup.Options(path, transformHandlers([]server.Handler{handler}, g.middlewares...)...).Name(authConfigs[0].Action) 64 } 65 66 func (g *Group) Head(path string, handler server.Handler, authConfigs ...*server.AuthConfig) { 67 authConfigs = append(authConfigs, &server.AuthConfig{Action: ""}) 68 g.FGroup.Head(path, transformHandlers([]server.Handler{handler}, g.middlewares...)...).Name(authConfigs[0].Action) 69 }