summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBobby <[email protected]>2026-03-03 16:54:33 +0530
committerBobby <[email protected]>2026-03-03 16:54:33 +0530
commitf6e671264734b8d82b48102041ad7f92ec2f1048 (patch)
treee0bd44e095f5732c698f7adbfe64680ca424a545
parent8631dd7420c35ce8c8b7da5f19eb4b516abcddc3 (diff)
downloadpagoda-f6e671264734b8d82b48102041ad7f92ec2f1048.tar.xz
pagoda-f6e671264734b8d82b48102041ad7f92ec2f1048.zip
refactor: standardize context variable naming in middleware and meta packages
-rw-r--r--shrine/middleware/logger.go12
-rw-r--r--shrine/middleware/request.go8
-rw-r--r--shrine/utils/logger/logger.go85
-rw-r--r--shrine/utils/logger/types.go39
-rw-r--r--shrine/utils/meta/body.go11
-rw-r--r--shrine/utils/meta/builder.go18
-rw-r--r--shrine/utils/meta/functions.go12
-rw-r--r--shrine/utils/meta/request.go38
-rw-r--r--shrine/utils/meta/types.go14
-rw-r--r--shrine/utils/meta/value.go6
10 files changed, 119 insertions, 124 deletions
diff --git a/shrine/middleware/logger.go b/shrine/middleware/logger.go
index 56b13eb..500c2ac 100644
--- a/shrine/middleware/logger.go
+++ b/shrine/middleware/logger.go
@@ -11,16 +11,16 @@ import (
)
func httpLogger() fiber.Handler {
- return func(c *fiber.Ctx) error {
+ return func(context *fiber.Ctx) error {
start := time.Now()
- err := c.Next()
+ err := context.Next()
duration := time.Since(start)
- status := c.Response().StatusCode()
- method := c.Method()
- path := c.Path()
- ip := c.IP()
+ status := context.Response().StatusCode()
+ method := context.Method()
+ path := context.Path()
+ ip := context.IP()
// Pad method for alignment
paddedMethod := method
diff --git a/shrine/middleware/request.go b/shrine/middleware/request.go
index 2577f16..3ddb545 100644
--- a/shrine/middleware/request.go
+++ b/shrine/middleware/request.go
@@ -7,9 +7,9 @@ import (
)
func request() fiber.Handler {
- return func(c *fiber.Ctx) error {
- req := meta.BuildRequest(c)
- c.Locals(meta.RequestKey, req)
- return c.Next()
+ return func(context *fiber.Ctx) error {
+ req := meta.BuildRequest(context)
+ context.Locals(meta.RequestKey, req)
+ return context.Next()
}
}
diff --git a/shrine/utils/logger/logger.go b/shrine/utils/logger/logger.go
index 9fc1bc7..176a173 100644
--- a/shrine/utils/logger/logger.go
+++ b/shrine/utils/logger/logger.go
@@ -4,7 +4,6 @@ import (
"fmt"
"os"
"strings"
- "time"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
@@ -15,23 +14,20 @@ const prefixWidth = 15
var (
loggerInstance *zap.Logger
level zap.AtomicLevel
- showTimestamp bool
)
-func timeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
- enc.AppendString(Gray + t.Format(time.RFC3339) + Reset)
-}
-
-func levelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder) {
+func levelBadge(l logLevel) string {
switch l {
- case zapcore.DebugLevel:
- enc.AppendString(LevelColorDebug)
- case zapcore.WarnLevel:
- enc.AppendString(LevelColorWarn)
- case zapcore.ErrorLevel:
- enc.AppendString(LevelColorError)
+ case levelDebug:
+ return levelColorDebug
+ case levelWarn:
+ return levelColorWarn
+ case levelError:
+ return levelColorError
+ case levelSuccess:
+ return levelColorSuccess
default:
- enc.AppendString(LevelColorInfo)
+ return levelColorInfo
}
}
@@ -45,21 +41,21 @@ func formatPrefix(prefix string) string {
padding = strings.Repeat(" ", prefixWidth-len(prefix))
}
- return Cyan + "[" + prefix + "]" + Reset + padding
+ return cyan + "[" + prefix + "]" + reset + padding
}
-func colorMessage(level LogLevel, msg string) string {
- switch level {
- case Debug:
- return MessageColorDebug + msg + Reset
- case Warn:
- return MessageColorWarn + msg + Reset
- case Error:
- return MessageColorError + msg + Reset
- case Success:
- return MessageColorSuccess + msg + Reset
+func colorMessage(l logLevel, msg string) string {
+ switch l {
+ case levelDebug:
+ return messageColorDebug + msg + reset
+ case levelWarn:
+ return messageColorWarn + msg + reset
+ case levelError:
+ return messageColorError + msg + reset
+ case levelSuccess:
+ return messageColorSuccess + msg + reset
default:
- return MessageColorInfo + msg + Reset
+ return messageColorInfo + msg + reset
}
}
@@ -67,15 +63,8 @@ func Init() {
level = zap.NewAtomicLevelAt(zapcore.InfoLevel)
encoderCfg := zapcore.EncoderConfig{
- LevelKey: "level",
- MessageKey: "msg",
- LineEnding: "\n",
- EncodeLevel: levelEncoder,
- }
-
- if showTimestamp {
- encoderCfg.TimeKey = "ts"
- encoderCfg.EncodeTime = timeEncoder
+ MessageKey: "msg",
+ LineEnding: "\n",
}
encoder := zapcore.NewConsoleEncoder(encoderCfg)
@@ -92,11 +81,7 @@ func Init() {
})),
)
- loggerInstance = zap.New(core, zap.AddCaller())
-}
-
-func SetTimestamp(enabled bool) {
- showTimestamp = enabled
+ loggerInstance = zap.New(core)
}
func SetDebug(enabled bool) {
@@ -108,38 +93,38 @@ func SetDebug(enabled bool) {
}
func Debugf(prefix, format string, args ...any) {
- log(Debug, zapcore.DebugLevel, prefix, fmt.Sprintf(format, args...))
+ log(levelDebug, zapcore.DebugLevel, prefix, fmt.Sprintf(format, args...))
}
func Infof(prefix, format string, args ...any) {
- log(Info, zapcore.InfoLevel, prefix, fmt.Sprintf(format, args...))
+ log(levelInfo, zapcore.InfoLevel, prefix, fmt.Sprintf(format, args...))
}
func Successf(prefix, format string, args ...any) {
- log(Success, zapcore.InfoLevel, prefix, fmt.Sprintf(format, args...))
+ log(levelSuccess, zapcore.InfoLevel, prefix, fmt.Sprintf(format, args...))
}
func Warnf(prefix, format string, args ...any) {
- log(Warn, zapcore.WarnLevel, prefix, fmt.Sprintf(format, args...))
+ log(levelWarn, zapcore.WarnLevel, prefix, fmt.Sprintf(format, args...))
}
func Errorf(prefix, format string, args ...any) {
- log(Error, zapcore.ErrorLevel, prefix, fmt.Sprintf(format, args...))
+ log(levelError, zapcore.ErrorLevel, prefix, fmt.Sprintf(format, args...))
}
func Fatalf(prefix, format string, args ...any) {
- log(Error, zapcore.ErrorLevel, prefix, fmt.Sprintf(format, args...))
+ log(levelError, zapcore.ErrorLevel, prefix, fmt.Sprintf(format, args...))
os.Exit(1)
}
-func log(levelLabel LogLevel, zapLevel zapcore.Level, prefix string, msg any) {
+func log(label logLevel, zapLevel zapcore.Level, prefix string, msg any) {
if loggerInstance == nil {
panic("logger.Init() was not called")
}
message := fmt.Sprint(msg)
- colored := colorMessage(levelLabel, message)
- fullMessage := formatPrefix(prefix) + colored
+ colored := colorMessage(label, message)
+ fullMessage := levelBadge(label) + " " + formatPrefix(prefix) + colored
loggerInstance.Log(zapLevel, fullMessage)
-}
+} \ No newline at end of file
diff --git a/shrine/utils/logger/types.go b/shrine/utils/logger/types.go
index 9a92b01..cdbacda 100644
--- a/shrine/utils/logger/types.go
+++ b/shrine/utils/logger/types.go
@@ -1,29 +1,28 @@
package logger
-type LogLevel string
+type logLevel string
const (
- Debug LogLevel = "debug"
- Info LogLevel = "info"
- Warn LogLevel = "warn"
- Error LogLevel = "error"
- Success LogLevel = "success"
+ levelDebug logLevel = "debug"
+ levelInfo logLevel = "info"
+ levelWarn logLevel = "warn"
+ levelError logLevel = "error"
+ levelSuccess logLevel = "success"
)
const (
- Reset = "\033[0m"
- Cyan = "\033[36m"
- Gray = "\033[90m"
+ reset = "\033[0m"
+ cyan = "\033[36m"
- LevelColorInfo = "\033[34mINFO \033[0m"
- LevelColorWarn = "\033[33mWARN \033[0m"
- LevelColorError = "\033[31mERROR \033[0m"
- LevelColorDebug = "\033[35mDEBUG \033[0m"
- LevelColorSuccess = "\033[32mSUCCESS\033[0m"
+ levelColorInfo = "\033[34mINFO \033[0m"
+ levelColorWarn = "\033[33mWARN \033[0m"
+ levelColorError = "\033[31mERROR \033[0m"
+ levelColorDebug = "\033[35mDEBUG \033[0m"
+ levelColorSuccess = "\033[32mSUCCESS\033[0m"
- MessageColorInfo = "\033[97m"
- MessageColorWarn = "\033[33m"
- MessageColorError = "\033[31m"
- MessageColorDebug = "\033[90m"
- MessageColorSuccess = "\033[32m"
-)
+ messageColorInfo = "\033[97m"
+ messageColorWarn = "\033[33m"
+ messageColorError = "\033[31m"
+ messageColorDebug = "\033[90m"
+ messageColorSuccess = "\033[32m"
+) \ No newline at end of file
diff --git a/shrine/utils/meta/body.go b/shrine/utils/meta/body.go
new file mode 100644
index 0000000..bfe9118
--- /dev/null
+++ b/shrine/utils/meta/body.go
@@ -0,0 +1,11 @@
+package meta
+
+import "github.com/gofiber/fiber/v2"
+
+func Body[T any](context *fiber.Ctx) (T, error) {
+ var body T
+ if err := context.BodyParser(&body); err != nil {
+ return body, err
+ }
+ return body, nil
+} \ No newline at end of file
diff --git a/shrine/utils/meta/builder.go b/shrine/utils/meta/builder.go
index 11d9d24..96bf61a 100644
--- a/shrine/utils/meta/builder.go
+++ b/shrine/utils/meta/builder.go
@@ -6,15 +6,15 @@ import (
"github.com/gofiber/fiber/v2"
)
-func BuildRequest(c *fiber.Ctx) types.Request {
+func BuildRequest(context *fiber.Ctx) types.Request {
return types.Request{
- Path: c.Path(),
- Method: c.Method(),
- Query: buildQueryParams(c),
- Params: buildRouteParams(c),
- Headers: buildHeaders(c),
- QueryString: string(c.Request().URI().QueryString()),
- IP: c.IP(),
- URL: c.OriginalURL(),
+ Path: context.Path(),
+ Method: context.Method(),
+ Query: buildQueryParams(context),
+ Params: buildRouteParams(context),
+ Headers: buildHeaders(context),
+ QueryString: string(context.Request().URI().QueryString()),
+ IP: context.IP(),
+ URL: context.OriginalURL(),
}
}
diff --git a/shrine/utils/meta/functions.go b/shrine/utils/meta/functions.go
index 5bcc550..e36e296 100644
--- a/shrine/utils/meta/functions.go
+++ b/shrine/utils/meta/functions.go
@@ -6,9 +6,9 @@ import (
"github.com/gofiber/fiber/v2"
)
-func buildQueryParams(c *fiber.Ctx) []types.HTTPParam {
+func buildQueryParams(context *fiber.Ctx) []types.HTTPParam {
params := make([]types.HTTPParam, 0)
- c.Request().URI().QueryArgs().VisitAll(func(k, v []byte) {
+ context.Request().URI().QueryArgs().VisitAll(func(k, v []byte) {
params = append(params, types.HTTPParam{
Key: string(k),
Value: string(v),
@@ -17,9 +17,9 @@ func buildQueryParams(c *fiber.Ctx) []types.HTTPParam {
return params
}
-func buildRouteParams(c *fiber.Ctx) []types.HTTPParam {
+func buildRouteParams(context *fiber.Ctx) []types.HTTPParam {
params := make([]types.HTTPParam, 0)
- for k, v := range c.AllParams() {
+ for k, v := range context.AllParams() {
params = append(params, types.HTTPParam{
Key: k,
Value: v,
@@ -28,9 +28,9 @@ func buildRouteParams(c *fiber.Ctx) []types.HTTPParam {
return params
}
-func buildHeaders(c *fiber.Ctx) []types.HTTPParam {
+func buildHeaders(context *fiber.Ctx) []types.HTTPParam {
params := make([]types.HTTPParam, 0)
- c.Request().Header.VisitAll(func(k, v []byte) {
+ context.Request().Header.VisitAll(func(k, v []byte) {
params = append(params, types.HTTPParam{
Key: string(k),
Value: string(v),
diff --git a/shrine/utils/meta/request.go b/shrine/utils/meta/request.go
index 7e499e7..b7fd909 100644
--- a/shrine/utils/meta/request.go
+++ b/shrine/utils/meta/request.go
@@ -7,20 +7,20 @@ import (
"github.com/gofiber/fiber/v2"
)
-const RequestKey = "__request_ctx"
+const RequestKey = "__request_context"
-func Request(c *fiber.Ctx) facade {
- req, ok := c.Locals(RequestKey).(types.Request)
+func Request(context *fiber.Ctx) facade {
+ request, ok := context.Locals(RequestKey).(types.Request)
if !ok {
logger.Errorf("META", "RequestContext missing in fiber locals")
return facade{}
}
- return facade{req: req, ctx: c}
+ return facade{request: request, context: context}
}
func (f facade) Param(key string) (string, bool) {
- if f.ctx != nil {
- val := f.ctx.Params(key)
+ if f.context != nil {
+ val := f.context.Params(key)
if val != "" {
return val, true
}
@@ -29,7 +29,7 @@ func (f facade) Param(key string) (string, bool) {
}
func (f facade) Query(key string) (string, bool) {
- for _, q := range f.req.Query {
+ for _, q := range f.request.Query {
if q.Key == key {
return q.Value, true
}
@@ -38,7 +38,7 @@ func (f facade) Query(key string) (string, bool) {
}
func (f facade) Header(key string) (string, bool) {
- for _, h := range f.req.Headers {
+ for _, h := range f.request.Headers {
if h.Key == key {
return h.Value, true
}
@@ -48,8 +48,8 @@ func (f facade) Header(key string) (string, bool) {
func (r required) Param(key string) string {
// Access params directly from fiber context (available after route matching)
- if r.ctx != nil {
- val := r.ctx.Params(key)
+ if r.context != nil {
+ val := r.context.Params(key)
if val != "" {
return val
}
@@ -59,7 +59,7 @@ func (r required) Param(key string) string {
}
func (r required) Query(key string) string {
- for _, q := range r.req.Query {
+ for _, q := range r.request.Query {
if q.Key == key {
return q.Value
}
@@ -69,7 +69,7 @@ func (r required) Query(key string) string {
}
func (r required) Header(key string) string {
- for _, h := range r.req.Headers {
+ for _, h := range r.request.Headers {
if h.Key == key {
return h.Value
}
@@ -79,29 +79,29 @@ func (r required) Header(key string) string {
}
func (d withDefault) Param(key string) string {
- if d.ctx != nil {
- val := d.ctx.Params(key)
+ if d.context != nil {
+ val := d.context.Params(key)
if val != "" {
return val
}
}
- return d.def
+ return d.defaults
}
func (d withDefault) Query(key string) string {
- for _, q := range d.req.Query {
+ for _, q := range d.request.Query {
if q.Key == key {
return q.Value
}
}
- return d.def
+ return d.defaults
}
func (d withDefault) Header(key string) string {
- for _, h := range d.req.Headers {
+ for _, h := range d.request.Headers {
if h.Key == key {
return h.Value
}
}
- return d.def
+ return d.defaults
}
diff --git a/shrine/utils/meta/types.go b/shrine/utils/meta/types.go
index 4d8be9b..2f2f504 100644
--- a/shrine/utils/meta/types.go
+++ b/shrine/utils/meta/types.go
@@ -7,17 +7,17 @@ import (
)
type facade struct {
- req types.Request
- ctx *fiber.Ctx
+ request types.Request
+ context *fiber.Ctx
}
type required struct {
- req types.Request
- ctx *fiber.Ctx
+ request types.Request
+ context *fiber.Ctx
}
type withDefault struct {
- req types.Request
- ctx *fiber.Ctx
- def string
+ request types.Request
+ context *fiber.Ctx
+ defaults string
}
diff --git a/shrine/utils/meta/value.go b/shrine/utils/meta/value.go
index 59345d3..5402b75 100644
--- a/shrine/utils/meta/value.go
+++ b/shrine/utils/meta/value.go
@@ -1,9 +1,9 @@
package meta
func (f facade) MustHave() required {
- return required{req: f.req, ctx: f.ctx}
+ return required{request: f.request, context: f.context}
}
-func (f facade) Default(def string) withDefault {
- return withDefault{req: f.req, ctx: f.ctx, def: def}
+func (f facade) Default(defaults string) withDefault {
+ return withDefault{request: f.request, context: f.context, defaults: defaults}
}