fix: param

This commit is contained in:
Rogee
2025-01-10 16:15:50 +08:00
parent 9d6edc60a9
commit 36e52541dd
3 changed files with 30 additions and 15 deletions

View File

@@ -5,6 +5,13 @@ import (
"github.com/pkg/errors"
)
func Local[T any](key string) func(fiber.Ctx) (T, error) {
return func(ctx fiber.Ctx) (T, error) {
v := fiber.Locals[T](ctx, key)
return v, nil
}
}
func Path[T fiber.GenericType](key string) func(fiber.Ctx) (T, error) {
return func(ctx fiber.Ctx) (T, error) {
v := fiber.Params[T](ctx, key)
@@ -12,14 +19,10 @@ func Path[T fiber.GenericType](key string) func(fiber.Ctx) (T, error) {
}
}
func URI[T any](name string) func(fiber.Ctx) (*T, error) {
return func(ctx fiber.Ctx) (*T, error) {
p := new(T)
if err := ctx.Bind().URI(p); err != nil {
return nil, errors.Wrapf(err, "uri: %s", name)
}
return p, nil
func PathParam[T fiber.GenericType](name string) func(fiber.Ctx) (T, error) {
return func(ctx fiber.Ctx) (T, error) {
v := fiber.Params[T](ctx, name)
return v, nil
}
}
@@ -63,3 +66,20 @@ func Header[T any](name string) func(fiber.Ctx) (*T, error) {
return p, nil
}
}
func Cookie[T any](name string) func(fiber.Ctx) (*T, error) {
return func(ctx fiber.Ctx) (*T, error) {
p := new(T)
if err := ctx.Bind().Cookie(p); err != nil {
return nil, errors.Wrapf(err, "cookie: %s", name)
}
return p, nil
}
}
func CookieParam(name string) func(fiber.Ctx) (string, error) {
return func(ctx fiber.Ctx) (string, error) {
return ctx.Cookies(name), nil
}
}