diff options
Diffstat (limited to 'utils/meta/builder.go')
| -rw-r--r-- | utils/meta/builder.go | 46 |
1 files changed, 39 insertions, 7 deletions
diff --git a/utils/meta/builder.go b/utils/meta/builder.go index 4ae2648..3e4de93 100644 --- a/utils/meta/builder.go +++ b/utils/meta/builder.go @@ -1,13 +1,9 @@ package meta -import ( - "dove/types" +import "github.com/gofiber/fiber/v2" - "github.com/gofiber/fiber/v2" -) - -func BuildRequest(context *fiber.Ctx) types.Request { - return types.Request{ +func BuildRequest(context *fiber.Ctx) RequestInfo { + return RequestInfo{ Path: context.Path(), Method: context.Method(), Query: buildQueryParams(context), @@ -18,3 +14,39 @@ func BuildRequest(context *fiber.Ctx) types.Request { URL: context.OriginalURL(), } } + +func buildQueryParams(context *fiber.Ctx) []Param { + params := make([]Param, 0) + context.Request().URI().QueryArgs().VisitAll(func(name []byte, paramValue []byte) { + params = append(params, Param{ + Key: string(name), + Value: string(paramValue), + }) + }) + + return params +} + +func buildRouteParams(context *fiber.Ctx) []Param { + params := make([]Param, 0) + for name, routeValue := range context.AllParams() { + params = append(params, Param{ + Key: name, + Value: routeValue, + }) + } + + return params +} + +func buildHeaders(context *fiber.Ctx) []Param { + params := make([]Param, 0) + context.Request().Header.VisitAll(func(name []byte, headerValue []byte) { + params = append(params, Param{ + Key: string(name), + Value: string(headerValue), + }) + }) + + return params +} |
