Skip to content

Commit

Permalink
enhance configurator
Browse files Browse the repository at this point in the history
  • Loading branch information
TremblingV5 committed Mar 5, 2024
1 parent 3df1cb5 commit 0f2ae2d
Show file tree
Hide file tree
Showing 25 changed files with 341 additions and 373 deletions.
38 changes: 13 additions & 25 deletions applications/comment/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,49 @@ package main

import (
"context"

"github.com/TremblingV5/DouTok/applications/comment/handler"
"github.com/TremblingV5/DouTok/applications/comment/rpc"
"github.com/TremblingV5/DouTok/config/configStruct"

Check failure on line 8 in applications/comment/main.go

View workflow job for this annotation

GitHub Actions / review

[golangci] reported by reviewdog 🐶 could not import github.com/TremblingV5/DouTok/config/configStruct (-: # github.com/TremblingV5/DouTok/config/configStruct Raw Output: applications/comment/main.go:8:2: could not import github.com/TremblingV5/DouTok/config/configStruct (-: # github.com/TremblingV5/DouTok/config/configStruct
"github.com/TremblingV5/DouTok/kitex_gen/comment/commentservice"
"github.com/TremblingV5/DouTok/pkg/DouTokContext"
"github.com/TremblingV5/DouTok/pkg/DouTokLogger"
"github.com/TremblingV5/DouTok/pkg/configurator"
"github.com/TremblingV5/DouTok/pkg/constants"
"github.com/TremblingV5/DouTok/pkg/dtviper"
"github.com/TremblingV5/DouTok/pkg/services"
"go.uber.org/zap"
"reflect"
)

type Config struct {
Server configStruct.Base
Etcd configStruct.Etcd
Otel configStruct.Otel
}

type LoggerConfig struct {
Base configStruct.Base `envPrefix:"DOUTOK_COMMENT_"`
Etcd configStruct.Etcd `envPrefix:"DOUTOK_COMMENT_"`
Jwt configStruct.Jwt `envPrefix:"DOUTOK_COMMENT_"`
Otel configStruct.Otel `envPrefix:"DOUTOK_COMMENT_"`
Logger configStruct.Logger `envPrefix:"DOUTOK_COMMENT_"`
}

var (
logger *zap.Logger
commentConfig Config
logcfg LoggerConfig
ViperConfig *dtviper.Config
logger *zap.Logger
config = &Config{}
)

func init() {
ctx := context.Background()
commentConfig = Config{}
logcfg = LoggerConfig{}
ViperConfig = dtviper.ConfigInit("DOUTOK_COMMENT", "comment")
ViperConfig.UnmarshalStructTags(reflect.TypeOf(commentConfig), "")
ViperConfig.UnmarshalStruct(&commentConfig)

logcfg, err := configStruct.Load[*LoggerConfig](ctx, &logcfg)

logger = DouTokLogger.InitLogger(logcfg.Logger)
err := configurator.Load(ctx, config, "DOUTOK_COMMENT", "comment")
logger = DouTokLogger.InitLogger(config.Logger)
DouTokContext.DefaultLogger = logger
DouTokContext.AddLoggerToContext(ctx, logger)
if err != nil {
logger.Fatal("could not load env variables", zap.Error(err), zap.Any("config", logcfg))
logger.Fatal("could not load env variables", zap.Error(err), zap.Any("config", config))
}
}

func main() {

options, shutdown := services.InitRPCServerArgs(constants.COMMENT_SERVER_NAME, commentConfig.Server, commentConfig.Etcd, commentConfig.Otel)
options, shutdown := services.InitRPCServerArgs(constants.COMMENT_SERVER_NAME, config.Base, config.Etcd, config.Otel)
defer shutdown()

svr := commentservice.NewServer(
handler.New(rpc.New(services.InitRPCClientArgs(constants.COMMENT_SERVER_NAME, commentConfig.Etcd))),
handler.New(rpc.New(services.InitRPCClientArgs(constants.COMMENT_SERVER_NAME, config.Etcd))),
options...,
)

Expand Down
60 changes: 25 additions & 35 deletions applications/commentDomain/cmd/server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,86 +2,76 @@ package main

import (
"context"
"strconv"

"github.com/TremblingV5/DouTok/applications/commentDomain/handler"
"github.com/TremblingV5/DouTok/applications/commentDomain/redis/commentTotalCountRedis"
"github.com/TremblingV5/DouTok/applications/commentDomain/service"
"github.com/TremblingV5/DouTok/config/configStruct"

Check failure on line 10 in applications/commentDomain/cmd/server/main.go

View workflow job for this annotation

GitHub Actions / review

[golangci] reported by reviewdog 🐶 could not import github.com/TremblingV5/DouTok/config/configStruct (-: # github.com/TremblingV5/DouTok/config/configStruct Raw Output: applications/commentDomain/cmd/server/main.go:10:2: could not import github.com/TremblingV5/DouTok/config/configStruct (-: # github.com/TremblingV5/DouTok/config/configStruct
"github.com/TremblingV5/DouTok/kitex_gen/commentDomain/commentdomainservice"
"github.com/TremblingV5/DouTok/pkg/DouTokContext"
"github.com/TremblingV5/DouTok/pkg/DouTokLogger"
"github.com/TremblingV5/DouTok/pkg/dtviper"
"github.com/TremblingV5/DouTok/pkg/configurator"
"github.com/TremblingV5/DouTok/pkg/hbaseHandle"
"github.com/TremblingV5/DouTok/pkg/initHelper"
"github.com/TremblingV5/DouTok/pkg/mysqlIniter"
redishandle "github.com/TremblingV5/DouTok/pkg/redisHandle"
"go.uber.org/zap"
"reflect"
"strconv"
)

type Config struct {
Server configStruct.Base
Etcd configStruct.Etcd
Otel configStruct.Otel
MySQL configStruct.MySQL
Snowflake configStruct.Snowflake
HBase configStruct.HBase
Redis configStruct.Redis
}

type LoggerConfig struct {
Logger configStruct.Logger `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
Base configStruct.Base `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
Etcd configStruct.Etcd `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
Jwt configStruct.Jwt `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
MySQL configStruct.MySQL `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
Snowflake configStruct.Snowflake `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
HBase configStruct.HBase `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
Redis configStruct.Redis `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
Otel configStruct.Otel `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
Logger configStruct.Logger `envPrefix:"DOUTOK_COMMENT_DOMAIN_"`
}

var (
logger *zap.Logger
commentDomainConfig Config
logcfg LoggerConfig
viperConfig *dtviper.Config
handle *handler.CommentDomainHandler
logger *zap.Logger
handle = &handler.CommentDomainHandler{}
config = &Config{}
)

func init() {
ctx := context.Background()
commentDomainConfig = Config{}
logcfg = LoggerConfig{}
viperConfig = dtviper.ConfigInit("DOUTOK_COMMENT_DOMAIN", "commentDomain")
viperConfig.UnmarshalStructTags(reflect.TypeOf(commentDomainConfig), "")
viperConfig.UnmarshalStruct(&commentDomainConfig)

logcfg, err := configStruct.Load[*LoggerConfig](ctx, &logcfg)

logger = DouTokLogger.InitLogger(logcfg.Logger)
err := configurator.Load(ctx, config, "DOUTOK_COMMENT_DOMAIN", "commentDomain")
logger = DouTokLogger.InitLogger(config.Logger)
DouTokContext.DefaultLogger = logger
ctx = DouTokContext.AddLoggerToContext(ctx, logger)
DouTokContext.AddLoggerToContext(ctx, logger)

if err != nil {
logger.Fatal("could not load env variables", zap.Error(err), zap.Any("config", logcfg))
logger.Fatal("could not load env variables", zap.Error(err), zap.Any("config", config))
}

logger = DouTokContext.Extract(ctx)

db, err := mysqlIniter.InitDb(
commentDomainConfig.MySQL.Username, commentDomainConfig.MySQL.Password, commentDomainConfig.MySQL.Host, strconv.Itoa(commentDomainConfig.MySQL.Port), commentDomainConfig.MySQL.Database,
config.MySQL.Username, config.MySQL.Password, config.MySQL.Host, strconv.Itoa(config.MySQL.Port), config.MySQL.Database,
)
if err != nil {
panic(err)
}

hb := hbaseHandle.InitHB(commentDomainConfig.HBase.Host)
hb := hbaseHandle.InitHB(config.HBase.Host)

redisClient := redishandle.NewRedisClient(commentDomainConfig.Redis.Dsn, commentDomainConfig.Redis.Password, 1)
redisClient := redishandle.NewRedisClient(config.Redis.Dsn, config.Redis.Password, 1)
commentTotalCountRedisClient := commentTotalCountRedis.NewClient(redisClient)
commentDomainService := service.NewCommentDomainService(
db, &hb, commentTotalCountRedisClient, commentDomainConfig.Snowflake.Node,
db, &hb, commentTotalCountRedisClient, config.Snowflake.Node,
)

handle = handler.NewCommentDomainHandler(commentDomainService)
}

func main() {

options, shutdown := initHelper.InitRPCServerArgsV2(
commentDomainConfig.Server, commentDomainConfig.Etcd, commentDomainConfig.Otel,
config.Base, config.Etcd, config.Otel,
)
defer shutdown()

Expand Down
39 changes: 14 additions & 25 deletions applications/favorite/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,60 +2,49 @@ package main

import (
"context"

"github.com/TremblingV5/DouTok/applications/favorite/handler"
"github.com/TremblingV5/DouTok/applications/favorite/rpc"
"github.com/TremblingV5/DouTok/config/configStruct"
"github.com/TremblingV5/DouTok/kitex_gen/favorite/favoriteservice"
"github.com/TremblingV5/DouTok/pkg/DouTokContext"
"github.com/TremblingV5/DouTok/pkg/DouTokLogger"
"github.com/TremblingV5/DouTok/pkg/configurator"
"github.com/TremblingV5/DouTok/pkg/constants"
"github.com/TremblingV5/DouTok/pkg/dtviper"
"github.com/TremblingV5/DouTok/pkg/services"
"go.uber.org/zap"
"reflect"
)

type Config struct {
Server configStruct.Base
Etcd configStruct.Etcd
Otel configStruct.Otel
}

type LoggerConfig struct {
Base configStruct.Base `envPrefix:"DOUTOK_FAVORITE_"`
Etcd configStruct.Etcd `envPrefix:"DOUTOK_FAVORITE_"`
Jwt configStruct.Jwt `envPrefix:"DOUTOK_FAVORITE_"`
Otel configStruct.Otel `envPrefix:"DOUTOK_FAVORITE_"`
Logger configStruct.Logger `envPrefix:"DOUTOK_FAVORITE_"`
}

var (
logger *zap.Logger
favoriteConfig Config
logcfg LoggerConfig
viperConfig *dtviper.Config
logger *zap.Logger
config = &Config{}
)

func init() {
ctx := context.Background()
favoriteConfig = Config{}
logcfg = LoggerConfig{}
viperConfig = dtviper.ConfigInit("DOUTOK_FAVORITE", "favorite")
viperConfig.UnmarshalStructTags(reflect.TypeOf(favoriteConfig), "")
viperConfig.UnmarshalStruct(&favoriteConfig)

logcfg, err := configStruct.Load[*LoggerConfig](ctx, &logcfg)

logger = DouTokLogger.InitLogger(logcfg.Logger)
err := configurator.Load(ctx, config, "DOUTOK_FAVORITE", "favorite")
logger = DouTokLogger.InitLogger(config.Logger)
DouTokContext.DefaultLogger = logger
DouTokContext.AddLoggerToContext(ctx, logger)
if err != nil {
logger.Fatal("could not load env variables", zap.Error(err), zap.Any("config", logcfg))
logger.Fatal("could not load env variables", zap.Error(err), zap.Any("config", config))
}
}
func main() {

options, shutdown := services.InitRPCServerArgs(constants.FAVORITE_SERVER_NAME, favoriteConfig.Server, favoriteConfig.Etcd, favoriteConfig.Otel)
func main() {
options, shutdown := services.InitRPCServerArgs(constants.FAVORITE_SERVER_NAME, config.Base, config.Etcd, config.Otel)
defer shutdown()

svr := favoriteservice.NewServer(
handler.New(rpc.New(services.InitRPCClientArgs(constants.FAVORITE_SERVER_NAME, favoriteConfig.Etcd))),
handler.New(rpc.New(services.InitRPCClientArgs(constants.FAVORITE_SERVER_NAME, config.Etcd))),
options...,
)

Expand Down
46 changes: 20 additions & 26 deletions applications/user/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,58 +2,52 @@ package main

import (
"context"

"go.uber.org/zap"

"github.com/TremblingV5/DouTok/applications/user/handler"
"github.com/TremblingV5/DouTok/applications/user/rpc"
"github.com/TremblingV5/DouTok/config/configStruct"
"github.com/TremblingV5/DouTok/kitex_gen/user/userservice"
"github.com/TremblingV5/DouTok/pkg/DouTokContext"
"github.com/TremblingV5/DouTok/pkg/DouTokLogger"
"github.com/TremblingV5/DouTok/pkg/configurator"
"github.com/TremblingV5/DouTok/pkg/constants"
"github.com/TremblingV5/DouTok/pkg/dtviper"
"github.com/TremblingV5/DouTok/pkg/services"
"go.uber.org/zap"
"reflect"
)

type Config struct {
Server configStruct.Base
Etcd configStruct.Etcd
Otel configStruct.Otel
}

type LoggerConfig struct {
Logger configStruct.Logger `envPrefix:"DOUTOK_USER_"`
Base configStruct.Base `envPrefix:"DOUTOK_USER_"`
Etcd configStruct.Etcd `envPrefix:"DOUTOK_USER_"`
Jwt configStruct.Jwt `envPrefix:"DOUTOK_USER_"`
MySQL configStruct.MySQL `envPrefix:"DOUTOK_USER_"`
Snowflake configStruct.Snowflake `envPrefix:"DOUTOK_USER_"`
HBase configStruct.HBase `envPrefix:"DOUTOK_USER_"`
Redis configStruct.Redis `envPrefix:"DOUTOK_USER_"`
Otel configStruct.Otel `envPrefix:"DOUTOK_USER_"`
Logger configStruct.Logger `envPrefix:"DOUTOK_USER_"`
}

var (
logger *zap.Logger
userConfig Config
logcfg LoggerConfig
viperConfig *dtviper.Config
logger *zap.Logger
config = &Config{}
)

func init() {
ctx := context.Background()
userConfig = Config{}
logcfg = LoggerConfig{}
viperConfig = dtviper.ConfigInit("DOUTOK_USER", "user")
viperConfig.UnmarshalStructTags(reflect.TypeOf(userConfig), "")
viperConfig.UnmarshalStruct(&userConfig)

logcfg, err := configStruct.Load[*LoggerConfig](ctx, &logcfg)

logger = DouTokLogger.InitLogger(logcfg.Logger)
err := configurator.Load(ctx, config, "DOUTOK_USER", "user")
logger = DouTokLogger.InitLogger(config.Logger)
DouTokContext.DefaultLogger = logger
DouTokContext.AddLoggerToContext(ctx, logger)
if err != nil {
logger.Fatal("could not load env variables", zap.Error(err), zap.Any("config", logcfg))
logger.Fatal("could not load env variables", zap.Error(err), zap.Any("config", config))
}
}

func main() {
clients := rpc.New(services.InitRPCClientArgs(constants.USER_SERVER_NAME, userConfig.Etcd))
clients := rpc.New(services.InitRPCClientArgs(constants.USER_SERVER_NAME, config.Etcd))

options, shutdown := services.InitRPCServerArgs(constants.USER_SERVER_NAME, userConfig.Server, userConfig.Etcd, userConfig.Otel)
options, shutdown := services.InitRPCServerArgs(constants.USER_SERVER_NAME, config.Base, config.Etcd, config.Otel)
defer shutdown()

svr := userservice.NewServer(handler.New(clients), options...)
Expand Down
Loading

0 comments on commit 0f2ae2d

Please sign in to comment.