diff options
| author | Bobby <[email protected]> | 2026-02-09 15:58:23 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2026-02-09 15:58:23 +0530 |
| commit | f382cfae8f0fd2facc7115d1f82dd27ceb1a8258 (patch) | |
| tree | 5364792a1f1691eb3c7c91a1639a0f56f8546885 /utils | |
| parent | 1716b3b21b9e9daeacf970006b5c3a24885a65bc (diff) | |
| download | metachan-f382cfae8f0fd2facc7115d1f82dd27ceb1a8258.tar.xz metachan-f382cfae8f0fd2facc7115d1f82dd27ceb1a8258.zip | |
Refactor request handling: enhance facade structure to include fiber context for improved parameter access
Diffstat (limited to 'utils')
| -rw-r--r-- | utils/meta/request.go | 25 | ||||
| -rw-r--r-- | utils/meta/types.go | 9 | ||||
| -rw-r--r-- | utils/meta/value.go | 4 |
3 files changed, 25 insertions, 13 deletions
diff --git a/utils/meta/request.go b/utils/meta/request.go index 7325a44..98d277e 100644 --- a/utils/meta/request.go +++ b/utils/meta/request.go @@ -15,13 +15,14 @@ func Request(c *fiber.Ctx) facade { logger.Errorf("META", "RequestContext missing in fiber locals") return facade{} } - return facade{req: req} + return facade{req: req, ctx: c} } func (f facade) Param(key string) (string, bool) { - for _, p := range f.req.Params { - if p.Key == key { - return p.Value, true + if f.ctx != nil { + val := f.ctx.Params(key) + if val != "" { + return val, true } } return "", false @@ -46,9 +47,11 @@ func (f facade) Header(key string) (string, bool) { } func (r required) Param(key string) string { - for _, p := range r.req.Params { - if p.Key == key { - return p.Value + // Access params directly from fiber context (available after route matching) + if r.ctx != nil { + val := r.ctx.Params(key) + if val != "" { + return val } } logger.Errorf("META", "missing required param: %s", key) @@ -76,9 +79,11 @@ func (r required) Header(key string) string { } func (d withDefault) Param(key string) string { - for _, p := range d.req.Params { - if p.Key == key { - return p.Value + // Access params directly from fiber context (available after route matching) + if d.ctx != nil { + val := d.ctx.Params(key) + if val != "" { + return val } } return d.def diff --git a/utils/meta/types.go b/utils/meta/types.go index 043255b..486d8df 100644 --- a/utils/meta/types.go +++ b/utils/meta/types.go @@ -1,16 +1,23 @@ package meta -import "metachan/types" +import ( + "metachan/types" + + "github.com/gofiber/fiber/v2" +) type facade struct { req types.Request + ctx *fiber.Ctx } type required struct { req types.Request + ctx *fiber.Ctx } type withDefault struct { req types.Request + ctx *fiber.Ctx def string } diff --git a/utils/meta/value.go b/utils/meta/value.go index 1572066..59345d3 100644 --- a/utils/meta/value.go +++ b/utils/meta/value.go @@ -1,9 +1,9 @@ package meta func (f facade) MustHave() required { - return required{req: f.req} + return required{req: f.req, ctx: f.ctx} } func (f facade) Default(def string) withDefault { - return withDefault{req: f.req, def: def} + return withDefault{req: f.req, ctx: f.ctx, def: def} } |
