MCPcopy Create free account
hub / github.com/devfeel/dotweb / Next

Method Next

middleware.go:62–93  ·  view source on GitHub ↗
(ctx Context)

Source from the content-addressed store, hash-verified

60}
61
62func (bm *BaseMiddleware) Next(ctx Context) error {
63 if ctx.getMiddlewareStep() == "" {
64 ctx.setMiddlewareStep(middleware_App)
65 }
66 if bm.next == nil {
67 if ctx.getMiddlewareStep() == middleware_App {
68 ctx.setMiddlewareStep(middleware_Group)
69 if len(ctx.RouterNode().GroupMiddlewares()) > 0 {
70 return ctx.RouterNode().GroupMiddlewares()[0].Handle(ctx)
71 }
72 }
73 if ctx.getMiddlewareStep() == middleware_Group {
74 ctx.setMiddlewareStep(middleware_Router)
75 if len(ctx.RouterNode().Middlewares()) > 0 {
76 return ctx.RouterNode().Middlewares()[0].Handle(ctx)
77 }
78 }
79
80 if ctx.getMiddlewareStep() == middleware_Router {
81 return ctx.Handler()(ctx)
82 }
83 } else {
84 // check exclude config
85 if ctx.RouterNode().Node().hasExcludeMiddleware && bm.next.HasExclude() {
86 if bm.next.ExistsExcludeRouter(ctx.RouterNode().Node().fullPath) {
87 return bm.next.Next(ctx)
88 }
89 }
90 return bm.next.Handle(ctx)
91 }
92 return nil
93}
94
95// Exclude Exclude this middleware with router
96func (bm *BaseMiddleware) Exclude(routers ...string) {

Callers

nothing calls this directly

Calls 11

getMiddlewareStepMethod · 0.65
setMiddlewareStepMethod · 0.65
GroupMiddlewaresMethod · 0.65
RouterNodeMethod · 0.65
HandleMethod · 0.65
MiddlewaresMethod · 0.65
HandlerMethod · 0.65
NodeMethod · 0.65
HasExcludeMethod · 0.65
ExistsExcludeRouterMethod · 0.65
NextMethod · 0.65

Tested by

no test coverage detected