Skip to content

Commit

Permalink
Merge pull request #14 from spotlibs/ref/ctx-to-reflect-latest-goravel
Browse files Browse the repository at this point in the history
ref: adjusment `ctx` to reflect latest goravel
  • Loading branch information
mdanialr authored Sep 23, 2024
2 parents 041c22c + 30e975c commit 1ee55af
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 29 deletions.
29 changes: 5 additions & 24 deletions ctx/metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,9 @@ import (
)

// keyMetadata custom type that can prevent collision.
type keyMetadata int
type keyMetadata struct{}

const keyMetadataCtx keyMetadata = iota

// metadataKey key to identify that a value in context is set and get from this
// package.
const metadataKey = "spotlibs-metadata-key"
var keyCtx keyMetadata

// Metadata holds any request-scoped shared data within brispot microservice.
type Metadata struct {
Expand Down Expand Up @@ -43,32 +39,17 @@ type Metadata struct {
// Set inject given Metadata to context with custom key to make sure that the
// value is correct.
func Set(ctx context.Context, mt Metadata) context.Context {
return context.WithValue(ctx, keyMetadataCtx, mt)
return context.WithValue(ctx, keyCtx, mt)
}

// Get retrieve Metadata from given context with key from this pkg.
func Get(ctx context.Context) Metadata {
if mt, ok := ctx.Value(keyMetadataCtx).(Metadata); ok {
if mt, ok := ctx.Value(keyCtx).(Metadata); ok {
return mt
}
return Metadata{}
}

// PassToContext pass Metadata from http.Context to context.
func PassToContext(c http.Context) context.Context {
return Set(c, ParseRequest(c))
}

// ParseRequest return Metadata from given http context but return empty data
// instead if no data were found.
func ParseRequest(c http.Context) Metadata {
mt, ok := c.Value(metadataKey).(Metadata)
if !ok {
mt = Metadata{}
}
return mt
}

// SetFromRequestHeader set any available metadata from given http context in
// the request header.
func SetFromRequestHeader(c http.Context) {
Expand All @@ -95,7 +76,7 @@ func SetFromRequestHeader(c http.Context) {
ReqJenisUker: c.Request().Header("X-Request-Jenis-Uker"),
PathGateway: c.Request().Header("X-Path-Gateway"),
}
c.WithValue(metadataKey, mt)
c.WithValue(keyCtx, mt)
}

// GetReqId extract request id from given context. This is a shortcut for Get
Expand Down
8 changes: 4 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ module github.com/spotlibs/go-lib
go 1.22

require (
github.com/bytedance/sonic v1.12.1
github.com/goravel/framework v1.14.2
github.com/bytedance/sonic v1.12.2
github.com/goravel/framework v1.14.7
github.com/stretchr/testify v1.9.0
go.uber.org/zap v1.21.0
go.uber.org/zap v1.27.0
)

require (
Expand Down Expand Up @@ -146,7 +146,7 @@ require (
go.opentelemetry.io/otel/metric v1.24.0 // indirect
go.opentelemetry.io/otel/trace v1.24.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.9.0 // indirect
go.uber.org/multierr v1.10.0 // indirect
golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect
golang.org/x/crypto v0.24.0 // indirect
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
Expand Down
8 changes: 8 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
github.com/bytedance/sonic v1.12.1 h1:jWl5Qz1fy7X1ioY74WqO0KjAMtAGQs4sYnjiEBiyX24=
github.com/bytedance/sonic v1.12.1/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk=
github.com/bytedance/sonic v1.12.2 h1:oaMFuRTpMHYLpCntGca65YWt5ny+wAceDERTkT2L9lg=
github.com/bytedance/sonic v1.12.2/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk=
github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM=
github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
Expand Down Expand Up @@ -388,6 +390,8 @@ github.com/goravel/file-rotatelogs/v2 v2.4.2 h1:g68AzbePXcm0V2CpUMc9j4qVzcDn7+7a
github.com/goravel/file-rotatelogs/v2 v2.4.2/go.mod h1:23VuSW8cBS4ax5cmbV+5AaiLpq25b8UJ96IhbAkdo8I=
github.com/goravel/framework v1.14.2 h1:8PFEwTqjDiyZTNuGemRTu5v9G/0fJv94cfTqQGpRcjw=
github.com/goravel/framework v1.14.2/go.mod h1:rScDXGQZdoVfyxemNPmijlz/2a+lWNOa4jTuak5GGVg=
github.com/goravel/framework v1.14.7 h1:mO8HFy8dU0wWRUaLcGrUbXdIyXsC0YWC+VdYouviLbY=
github.com/goravel/framework v1.14.7/go.mod h1:rScDXGQZdoVfyxemNPmijlz/2a+lWNOa4jTuak5GGVg=
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
Expand Down Expand Up @@ -674,9 +678,13 @@ go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ=
go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU=
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
Expand Down
2 changes: 1 addition & 1 deletion middleware/activity_monitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func apiActivityRecorder(c http.Context, start time.Time) {
_ = sonic.ConfigFastest.Unmarshal(c.Response().Origin().Body().Bytes(), &res)

// get metadata from context
mt := ctx.ParseRequest(c)
mt := ctx.Get(c)

activityData := map[string]any{
"app_name": facades.Config().GetString("app.name", "Microservice"),
Expand Down

0 comments on commit 1ee55af

Please sign in to comment.