aboutsummaryrefslogtreecommitdiff
path: root/utils/meta
diff options
context:
space:
mode:
authorBobby <[email protected]>2026-02-09 15:58:23 +0530
committerBobby <[email protected]>2026-02-09 15:58:23 +0530
commitf382cfae8f0fd2facc7115d1f82dd27ceb1a8258 (patch)
tree5364792a1f1691eb3c7c91a1639a0f56f8546885 /utils/meta
parent1716b3b21b9e9daeacf970006b5c3a24885a65bc (diff)
downloadmetachan-f382cfae8f0fd2facc7115d1f82dd27ceb1a8258.tar.xz
metachan-f382cfae8f0fd2facc7115d1f82dd27ceb1a8258.zip
Refactor request handling: enhance facade structure to include fiber context for improved parameter access
Diffstat (limited to 'utils/meta')
-rw-r--r--utils/meta/request.go25
-rw-r--r--utils/meta/types.go9
-rw-r--r--utils/meta/value.go4
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}
}