Files
atomctl/templates/project/pkg/f/bind.go.tpl
2024-12-20 15:13:22 +08:00

70 lines
1.2 KiB
Smarty

package f
import (
"github.com/gofiber/fiber/v3"
)
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)
return v, nil
}
}
func URI[T any]() 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, err
}
return p, nil
}
}
func Cookie[T any]() 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, err
}
return p, nil
}
}
func Body[T any]() func(fiber.Ctx) (*T, error) {
return func(ctx fiber.Ctx) (*T, error) {
p := new(T)
if err := ctx.Bind().Body(p); err != nil {
return nil, err
}
return p, nil
}
}
func Query[T any]() func(fiber.Ctx) (*T, error) {
return func(ctx fiber.Ctx) (*T, error) {
p := new(T)
if err := ctx.Bind().Query(p); err != nil {
return nil, err
}
return p, nil
}
}
func Header[T any]() func(fiber.Ctx) (*T, error) {
return func(ctx fiber.Ctx) (*T, error) {
p := new(T)
err := ctx.Bind().Header(p)
if err != nil {
return nil, err
}
return p, nil
}
}