From 3a9d5492f880d3821c4cfb0daaaacb0c7abe0422 Mon Sep 17 00:00:00 2001 From: yanghao05 Date: Fri, 28 Apr 2023 14:17:44 +0800 Subject: [PATCH] change options --- providers/captcha/captcha.go | 5 +++-- providers/database/mysql/mysql.go | 5 +++-- providers/database/postgres/postgres.go | 5 +++-- providers/database/sqlite/sqlite.go | 5 +++-- providers/faker/faker.go | 5 +++-- providers/http/gin/engine.go | 5 +++-- providers/jwt/jwt.go | 5 +++-- providers/log/logger.go | 5 +++-- providers/single_flight/flight.go | 5 +++-- providers/uuid/uuid.go | 5 +++-- {providers => utils/opt}/options.go | 22 +++++++++++----------- 11 files changed, 41 insertions(+), 31 deletions(-) rename {providers => utils/opt}/options.go (66%) diff --git a/providers/captcha/captcha.go b/providers/captcha/captcha.go index ae1b824..849d898 100644 --- a/providers/captcha/captcha.go +++ b/providers/captcha/captcha.go @@ -7,7 +7,7 @@ import ( "github.com/mojocn/base64Captcha" "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" + "github.com/rogeecn/atom/utils/opt" "github.com/spf13/viper" ) @@ -22,7 +22,8 @@ type Captcha struct { captcha *base64Captcha.Captcha } -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) var conf Config if err := o.UnmarshalConfig(&conf); err != nil { log.Fatal(err) diff --git a/providers/database/mysql/mysql.go b/providers/database/mysql/mysql.go index ff55777..cd2665a 100644 --- a/providers/database/mysql/mysql.go +++ b/providers/database/mysql/mysql.go @@ -4,15 +4,16 @@ import ( "database/sql" "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" "github.com/rogeecn/atom/providers/log" + "github.com/rogeecn/atom/utils/opt" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/schema" ) -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) var conf Config if err := o.UnmarshalConfig(&conf); err != nil { return err diff --git a/providers/database/postgres/postgres.go b/providers/database/postgres/postgres.go index 5982b97..4f1405f 100644 --- a/providers/database/postgres/postgres.go +++ b/providers/database/postgres/postgres.go @@ -4,14 +4,15 @@ import ( "log" "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" + "github.com/rogeecn/atom/utils/opt" "gorm.io/driver/postgres" "gorm.io/gorm" "gorm.io/gorm/schema" ) -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) var conf Config if err := o.UnmarshalConfig(&conf); err != nil { return err diff --git a/providers/database/sqlite/sqlite.go b/providers/database/sqlite/sqlite.go index 4825595..728b16a 100644 --- a/providers/database/sqlite/sqlite.go +++ b/providers/database/sqlite/sqlite.go @@ -2,14 +2,15 @@ package sqlite import ( "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" + "github.com/rogeecn/atom/utils/opt" // "gorm.io/driver/sqlite" "github.com/glebarez/sqlite" "gorm.io/gorm" ) -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) var conf Config if err := o.UnmarshalConfig(&conf); err != nil { return err diff --git a/providers/faker/faker.go b/providers/faker/faker.go index d7d093e..1cf932d 100644 --- a/providers/faker/faker.go +++ b/providers/faker/faker.go @@ -4,12 +4,13 @@ import ( "time" "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" + "github.com/rogeecn/atom/utils/opt" "github.com/brianvoe/gofakeit/v6" ) -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) return container.Container.Provide(func() (*gofakeit.Faker, error) { faker := gofakeit.New(time.Now().UnixNano()) gofakeit.SetGlobalFaker(faker) diff --git a/providers/http/gin/engine.go b/providers/http/gin/engine.go index d883270..2954297 100644 --- a/providers/http/gin/engine.go +++ b/providers/http/gin/engine.go @@ -5,9 +5,9 @@ import ( "time" "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" "github.com/rogeecn/atom/providers/http" "github.com/rogeecn/atom/providers/log" + "github.com/rogeecn/atom/utils/opt" "github.com/gin-gonic/gin" ) @@ -32,7 +32,8 @@ func (e *Service) Serve() error { return e.Engine.Run(e.conf.PortString()) } -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) var config http.Config if err := o.UnmarshalConfig(&config); err != nil { log.Fatal(err) diff --git a/providers/jwt/jwt.go b/providers/jwt/jwt.go index 7965005..e271d3a 100644 --- a/providers/jwt/jwt.go +++ b/providers/jwt/jwt.go @@ -6,8 +6,8 @@ import ( "time" "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" "github.com/rogeecn/atom/providers/log" + "github.com/rogeecn/atom/utils/opt" jwt "github.com/golang-jwt/jwt/v4" "golang.org/x/sync/singleflight" @@ -44,7 +44,8 @@ var ( TokenInvalid = errors.New("Couldn't handle this token:") ) -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) var config Config if err := o.UnmarshalConfig(&config); err != nil { log.Fatal(err) diff --git a/providers/log/logger.go b/providers/log/logger.go index d6decac..997b978 100644 --- a/providers/log/logger.go +++ b/providers/log/logger.go @@ -2,12 +2,13 @@ package log import ( "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" + "github.com/rogeecn/atom/utils/opt" "go.uber.org/zap" ) -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) var config Config if err := o.UnmarshalConfig(&config); err != nil { return err diff --git a/providers/single_flight/flight.go b/providers/single_flight/flight.go index cc04434..8e9ec64 100644 --- a/providers/single_flight/flight.go +++ b/providers/single_flight/flight.go @@ -2,11 +2,12 @@ package single_flight import ( "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" + "github.com/rogeecn/atom/utils/opt" "golang.org/x/sync/singleflight" ) -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) return container.Container.Provide(func() (*singleflight.Group, error) { return &singleflight.Group{}, nil }, o.DiOptions()...) diff --git a/providers/uuid/uuid.go b/providers/uuid/uuid.go index 37321c2..5985317 100644 --- a/providers/uuid/uuid.go +++ b/providers/uuid/uuid.go @@ -2,7 +2,7 @@ package uuid import ( "github.com/rogeecn/atom/container" - "github.com/rogeecn/atom/providers" + "github.com/rogeecn/atom/utils/opt" "github.com/gofrs/uuid" ) @@ -11,7 +11,8 @@ type Generator struct { generator uuid.Generator } -func Provide(o *providers.Options) error { +func Provide(opts ...opt.Option) error { + o := opt.New(opts...) return container.Container.Provide(func() (*Generator, error) { return &Generator{ generator: uuid.DefaultGenerator, diff --git a/providers/options.go b/utils/opt/options.go similarity index 66% rename from providers/options.go rename to utils/opt/options.go index 1d74f0c..bff20e1 100644 --- a/providers/options.go +++ b/utils/opt/options.go @@ -1,4 +1,4 @@ -package providers +package opt import ( "github.com/spf13/viper" @@ -6,10 +6,10 @@ import ( ) type Options struct { - Config *viper.Viper - ConfigPrefix string - Name string - Group string + Config *viper.Viper + Prefix string + Name string + Group string } type Option func(o *Options) @@ -23,7 +23,7 @@ func New(opts ...Option) *Options { } func (o *Options) UnmarshalConfig(config interface{}) error { - return o.Config.UnmarshalKey(o.ConfigPrefix, &config) + return o.Config.UnmarshalKey(o.Prefix, &config) } func (o *Options) DiOptions() []dig.ProvideOption { @@ -37,26 +37,26 @@ func (o *Options) DiOptions() []dig.ProvideOption { return options } -func WithConfig(config *viper.Viper) Option { +func Config(config *viper.Viper) Option { return func(o *Options) { o.Config = config } } -func WithName(name string) Option { +func Name(name string) Option { return func(o *Options) { o.Name = name } } -func WithGroup(group string) Option { +func Group(group string) Option { return func(o *Options) { o.Group = group } } -func WithConfigPrefix(prefix string) Option { +func Prefix(prefix string) Option { return func(o *Options) { - o.ConfigPrefix = prefix + o.Prefix = prefix } }