Skip to content

Commit

Permalink
✨ feat: support custom config (#167)
Browse files Browse the repository at this point in the history
  • Loading branch information
lwnmengjing authored Aug 22, 2024
1 parent 0312ee3 commit 7897d9a
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 38 deletions.
18 changes: 18 additions & 0 deletions center/default.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ type DefaultCenter struct {
UserImp
VirtualModelImp
ConfigImp
CustomConfigImp
server.Manager
gin.IRouter
StageImp
Expand Down Expand Up @@ -65,6 +66,10 @@ func (d *DefaultCenter) SetConfig(e ConfigImp) {
d.ConfigImp = e
}

func (d *DefaultCenter) SetCustomConfig(e CustomConfigImp) {
d.CustomConfigImp = e
}

func (d *DefaultCenter) SetVirtualModel(v VirtualModelImp) {
d.VirtualModelImp = v
}
Expand Down Expand Up @@ -137,6 +142,10 @@ func (d *DefaultCenter) GetConfig() ConfigImp {
return d.ConfigImp
}

func (d *DefaultCenter) GetCustomConfig() CustomConfigImp {
return d.CustomConfigImp
}

func (d *DefaultCenter) GetVirtualModel() VirtualModelImp {
return d.VirtualModelImp
}
Expand Down Expand Up @@ -229,6 +238,11 @@ func SetConfig(e ConfigImp) *DefaultCenter {
return Default
}

func SetCustomConfig(e CustomConfigImp) *DefaultCenter {
Default.SetCustomConfig(e)
return Default
}

func SetVirtualModel(v VirtualModelImp) *DefaultCenter {
Default.SetVirtualModel(v)
return Default
Expand Down Expand Up @@ -314,6 +328,10 @@ func GetConfig() ConfigImp {
return Default.GetConfig()
}

func GetCustomConfig() CustomConfigImp {
return Default.GetCustomConfig()
}

func GetVirtualModel() VirtualModelImp {
return Default.GetVirtualModel()
}
Expand Down
5 changes: 5 additions & 0 deletions center/type.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ type Center interface {
UserImp
VirtualModelImp
ConfigImp
CustomConfigImp
server.Manager
gin.IRouter
StageImp
Expand Down Expand Up @@ -91,6 +92,10 @@ type ConfigImp interface {
Init(...source.Option)
}

type CustomConfigImp interface {
ConfigImp
}

type AppConfigImp interface {
SetAppConfig(ctx *gin.Context, key string, auth bool, value string) error
GetAppConfig(ctx *gin.Context, key string) (string, bool)
Expand Down
2 changes: 1 addition & 1 deletion cmd/migrate/migrate.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ func setup() error {
slog.Error("config provider not support", "provider", configProvider)
os.Exit(-1)
}
center.SetConfig(config.Cfg).Init(opts...)
center.SetConfig(config.Cfg).GetConfig().Init(opts...)

// app config
center.SetAppConfig(&models.AppConfig{})
Expand Down
8 changes: 7 additions & 1 deletion cmd/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,13 @@ func setup() error {
slog.Error("config provider not support", "provider", configProvider)
os.Exit(-1)
}
center.SetConfig(config.Cfg).Init(opts...)
if customConfig := center.GetCustomConfig(); customConfig != nil {
opts = append(opts, source.WithPostfixHook(customConfig))
}
center.SetConfig(config.Cfg).GetConfig().Init(opts...)
if center.GetCustomConfig() != nil {
center.GetCustomConfig().Init()
}
err := models.InitTenant(gormdb.DB)
if err != nil {
return err
Expand Down
72 changes: 36 additions & 36 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ require (
github.com/IBM/sarama v1.43.3
github.com/appleboy/gin-jwt/v2 v2.9.2
github.com/aws/aws-msk-iam-sasl-signer-go v1.0.0
github.com/aws/aws-sdk-go-v2 v1.30.3
github.com/aws/aws-sdk-go-v2/config v1.27.27
github.com/aws/aws-sdk-go-v2/service/s3 v1.58.3
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.4
github.com/aws/aws-sdk-go-v2 v1.30.4
github.com/aws/aws-sdk-go-v2/config v1.27.28
github.com/aws/aws-sdk-go-v2/service/s3 v1.60.0
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.5
github.com/bsm/redislock v0.9.4
github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be
github.com/gin-contrib/cors v1.7.2
Expand All @@ -20,9 +20,9 @@ require (
github.com/google/go-github/v41 v41.0.0
github.com/google/uuid v1.6.0
github.com/gorilla/websocket v1.5.3
github.com/grafana/pyroscope-go v1.1.1
github.com/grafana/pyroscope-go v1.1.2
github.com/larksuite/oapi-sdk-go/v3 v3.3.1
github.com/mss-boot-io/mss-boot v0.2.7-0.20240819055506-8ee0e82149e5
github.com/mss-boot-io/mss-boot v0.2.7-0.20240822072236-e542a7a55c43
github.com/mss-boot-io/redisqueue/v2 v2.0.0-20240222064111-d36e396df7f9
github.com/nsqio/go-nsq v1.1.0
github.com/redis/go-redis/v9 v9.6.1
Expand All @@ -44,7 +44,7 @@ require (
)

require (
dario.cat/mergo v1.0.0 // indirect
dario.cat/mergo v1.0.1 // indirect
filippo.io/edwards25519 v1.1.0 // indirect
github.com/AlecAivazis/survey/v2 v2.3.7 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
Expand All @@ -56,32 +56,32 @@ require (
github.com/alecthomas/units v0.0.0-20240626203959-61d1e3462e30 // indirect
github.com/andygrunwald/go-jira v1.16.0 // indirect
github.com/armon/go-metrics v0.4.1 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.27 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 // indirect
github.com/aws/aws-sdk-go-v2/service/appconfigdata v1.16.3 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect
github.com/aws/smithy-go v1.20.3 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.28 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 // indirect
github.com/aws/aws-sdk-go-v2/service/appconfigdata v1.16.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.22.5 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.30.4 // indirect
github.com/aws/smithy-go v1.20.4 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bytedance/sonic v1.12.1 // indirect
github.com/bytedance/sonic/loader v0.2.0 // indirect
github.com/c2h5oh/datasize v0.0.0-20231215233829-aa82cc1e6500 // indirect
github.com/casbin/casbin/v2 v2.98.0 // indirect
github.com/casbin/gorm-adapter/v3 v3.26.0 // indirect
github.com/casbin/gorm-adapter/v3 v3.28.0 // indirect
github.com/casbin/govaluate v1.2.0 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/cloudflare/circl v1.3.9 // indirect
github.com/cloudflare/circl v1.4.0 // indirect
github.com/cloudwego/base64x v0.1.4 // indirect
github.com/cloudwego/iasm v0.2.0 // indirect
github.com/coreos/go-oidc/v3 v3.11.0 // indirect
Expand Down Expand Up @@ -138,18 +138,18 @@ require (
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/btree v1.1.2 // indirect
github.com/google/btree v1.1.3 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/gorilla/mux v1.8.1 // indirect
github.com/grafana/dskit v0.0.0-20240809111454-a84ba7a3fc42 // indirect
github.com/grafana/dskit v0.0.0-20240820081259-f96e399400b1 // indirect
github.com/grafana/gomemcache v0.0.0-20240805133030-fdaf6a95408e // indirect
github.com/grafana/jsonparser v0.0.0-20240425183733-ea80629e1a32 // indirect
github.com/grafana/loki/pkg/push v0.0.0-20240813175630-8041bd29b90a // indirect
github.com/grafana/loki/pkg/push v0.0.0-20240821155943-d43b2de1b4e0 // indirect
github.com/grafana/loki/v3 v3.1.1 // indirect
github.com/grafana/pyroscope-go/godeltaprof v0.1.7 // indirect
github.com/grafana/pyroscope-go/godeltaprof v0.1.8 // indirect
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect
github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.0.1 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect
Expand Down Expand Up @@ -191,7 +191,7 @@ require (
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
github.com/kyokomi/emoji/v2 v2.2.13 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/lufia/plan9stats v0.0.0-20240513124658-fba389f38bae // indirect
github.com/lufia/plan9stats v0.0.0-20240819163618-b1d8f4d146e7 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
Expand Down Expand Up @@ -220,7 +220,7 @@ require (
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
github.com/prometheus/client_golang v1.19.1 // indirect
github.com/prometheus/client_golang v1.20.1 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.55.0 // indirect
github.com/prometheus/exporter-toolkit v0.11.0 // indirect
Expand Down Expand Up @@ -279,8 +279,8 @@ require (
golang.org/x/text v0.17.0 // indirect
golang.org/x/time v0.6.0 // indirect
golang.org/x/tools v0.24.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240812133136-8ffd90a71988 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240812133136-8ffd90a71988 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240820151423-278611b39280 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240820151423-278611b39280 // indirect
google.golang.org/protobuf v1.34.2 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
Expand All @@ -292,9 +292,9 @@ require (
gorm.io/plugin/dbresolver v1.5.2 // indirect
k8s.io/api v0.31.0 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20240812233141-91dab695df6f // indirect
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
modernc.org/libc v1.59.3 // indirect
k8s.io/kube-openapi v0.0.0-20240816214639-573285566f34 // indirect
k8s.io/utils v0.0.0-20240821151609-f90d01438635 // indirect
modernc.org/libc v1.59.9 // indirect
modernc.org/mathutil v1.6.0 // indirect
modernc.org/memory v1.8.0 // indirect
modernc.org/sqlite v1.32.0 // indirect
Expand Down
Loading

0 comments on commit 7897d9a

Please # to comment.