summaryrefslogtreecommitdiffci
path: root/internal/router/path-matcher.go
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'internal/router/path-matcher.go')
-rw-r--r--internal/router/path-matcher.go48
1 files changed, 0 insertions, 48 deletions
diff --git a/internal/router/path-matcher.go b/internal/router/path-matcher.go
deleted file mode 100644
index c8aef08..0000000
--- a/internal/router/path-matcher.go
+++ /dev/null
@@ -1,48 +0,0 @@
-package router
-
-import (
- "github.com/gofiber/fiber/v2"
- "github.com/valyala/fasthttp"
-)
-
-type PathMatcher struct {
- app *fiber.App
-}
-
-func NewPathMatcher() *PathMatcher {
- app := fiber.New(fiber.Config{
- DisableStartupMessage: true,
- })
- return &PathMatcher{app: app}
-}
-
-func (pm *PathMatcher) AddRoute(method, pattern string) {
- pm.app.Add(method, pattern, func(c *fiber.Ctx) error {
- c.Locals("pattern", pattern)
- return nil
- })
-}
-
-func (pm *PathMatcher) MatchPath(method, path string) (pattern string, params map[string]string, matched bool) {
- fctx := &fasthttp.RequestCtx{}
- fctx.Request.Header.SetMethod(method)
- fctx.Request.SetRequestURI(path)
-
- ctx := pm.app.AcquireCtx(fctx)
- defer pm.app.ReleaseCtx(ctx)
-
- pm.app.Handler()(fctx)
-
- if ctx.Route() == nil {
- return "", nil, false
- }
-
- pattern = ctx.Locals("pattern").(string)
-
- params = make(map[string]string)
- for _, paramName := range ctx.Route().Params {
- params[paramName] = ctx.Params(paramName)
- }
-
- return pattern, params, true
-}