feat: app loader
This commit is contained in:
parent
87661426c0
commit
5dc1df3e2f
@ -1,8 +1,6 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/joho/godotenv"
|
||||
"github.com/kos-v/dsnparser"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
@ -41,33 +39,6 @@ type defaultConfig struct {
|
||||
|
||||
var Config = defaultConfig{}
|
||||
|
||||
func InitConfig() {
|
||||
envPath := GetEnvFilePath()
|
||||
_ = godotenv.Load(envPath)
|
||||
|
||||
Config.DB.DSN = GetEnv("DB_DSN")
|
||||
Config.DB.Driver = "postgres"
|
||||
Config.Redis.Addr = GetEnv("REDIS_ADDR")
|
||||
Config.Redis.Pass = GetEnv("REDIS_PASS")
|
||||
Config.GRPC.GrpcListenAddr = GetEnv("LISTEN_ADDR")
|
||||
Config.HTTP.ListenAddr = GetEnv("HTTP_LISTEN_ADDR")
|
||||
Config.JWKS.Url = GetEnv("JWKS_URL")
|
||||
Config.DebugMode.Enable = GetEnv("DEBUG", "false") == "true"
|
||||
|
||||
dsn := dsnparser.Parse(Config.DB.DSN)
|
||||
var dsn2 = ""
|
||||
|
||||
dsn2 += "user=" + dsn.GetUser()
|
||||
dsn2 += " password=" + dsn.GetPassword()
|
||||
dsn2 += " dbname=" + dsn.GetPath()
|
||||
|
||||
if dsn.HasParam("sslmode") {
|
||||
dsn2 += " sslmode=" + dsn.GetParam("sslmode")
|
||||
}
|
||||
|
||||
Config.DB.DSN2 = dsn2
|
||||
}
|
||||
|
||||
func GetEnv(key string, defaultValue ...string) string {
|
||||
r := os.Getenv(key)
|
||||
if len(r) == 0 && len(defaultValue) > 0 {
|
||||
|
33
internal/app/config/init.go
Normal file
33
internal/app/config/init.go
Normal file
@ -0,0 +1,33 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/joho/godotenv"
|
||||
"github.com/kos-v/dsnparser"
|
||||
)
|
||||
|
||||
func InitConfig() {
|
||||
envPath := GetEnvFilePath()
|
||||
_ = godotenv.Load(envPath)
|
||||
|
||||
Config.DB.DSN = GetEnv("DB_DSN")
|
||||
Config.DB.Driver = "postgres"
|
||||
Config.Redis.Addr = GetEnv("REDIS_ADDR")
|
||||
Config.Redis.Pass = GetEnv("REDIS_PASS")
|
||||
Config.GRPC.GrpcListenAddr = GetEnv("LISTEN_ADDR")
|
||||
Config.HTTP.ListenAddr = GetEnv("HTTP_LISTEN_ADDR")
|
||||
Config.JWKS.Url = GetEnv("JWKS_URL")
|
||||
Config.DebugMode.Enable = GetEnv("DEBUG", "false") == "true"
|
||||
|
||||
dsn := dsnparser.Parse(Config.DB.DSN)
|
||||
var dsn2 = ""
|
||||
|
||||
dsn2 += "user=" + dsn.GetUser()
|
||||
dsn2 += " password=" + dsn.GetPassword()
|
||||
dsn2 += " dbname=" + dsn.GetPath()
|
||||
|
||||
if dsn.HasParam("sslmode") {
|
||||
dsn2 += " sslmode=" + dsn.GetParam("sslmode")
|
||||
}
|
||||
|
||||
Config.DB.DSN2 = dsn2
|
||||
}
|
16
internal/app/gin/init.go
Normal file
16
internal/app/gin/init.go
Normal file
@ -0,0 +1,16 @@
|
||||
package gin
|
||||
|
||||
import (
|
||||
"framework_v2/internal/app/facades"
|
||||
ginzap "github.com/gin-contrib/zap"
|
||||
"github.com/gin-gonic/gin"
|
||||
"time"
|
||||
)
|
||||
|
||||
func InitGin() {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
facades.Router = gin.New()
|
||||
|
||||
facades.Router.Use(ginzap.Ginzap(facades.Logger, time.RFC3339, true))
|
||||
}
|
@ -6,23 +6,11 @@ import (
|
||||
"framework_v2/internal/app/helpers"
|
||||
"framework_v2/internal/app/user"
|
||||
http2 "framework_v2/internal/middleware/http"
|
||||
ginzap "github.com/gin-contrib/zap"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
"reflect"
|
||||
"time"
|
||||
)
|
||||
|
||||
func InitGin() {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
facades.Router = gin.New()
|
||||
|
||||
facades.Router.Use(ginzap.Ginzap(facades.Logger, time.RFC3339, true))
|
||||
//access.Router.Use(gin.Recovery())
|
||||
//access.Router.Use(ginzap.RecoveryWithZap(access.Logger, true))
|
||||
}
|
||||
|
||||
//func HandleRoute(method httpMethod, relativePath string, controller HandlerFunc, middlewares ...gin.HandlerFunc) {
|
||||
// access.Router.Handle(method.String(), relativePath, func(c *gin.Context) {
|
||||
// for _, middleware := range middlewares {
|
13
internal/app/jwks/init.go
Normal file
13
internal/app/jwks/init.go
Normal file
@ -0,0 +1,13 @@
|
||||
package jwks
|
||||
|
||||
import "time"
|
||||
|
||||
func InitJwksRefresh() {
|
||||
// 启动一个定时器
|
||||
go func() {
|
||||
for {
|
||||
RefreshJWKS()
|
||||
time.Sleep(refreshRate)
|
||||
}
|
||||
}()
|
||||
}
|
@ -17,16 +17,6 @@ var (
|
||||
ErrJWKSNotInitialized = errors.New("JWKS is not initialized")
|
||||
)
|
||||
|
||||
func InitJwksRefresh() {
|
||||
// 启动一个定时器
|
||||
go func() {
|
||||
for {
|
||||
RefreshJWKS()
|
||||
time.Sleep(refreshRate)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
func RefreshJWKS() {
|
||||
logger.Logger.Info("Refreshing JWKS...")
|
||||
|
||||
|
@ -7,7 +7,7 @@ import (
|
||||
"framework_v2/internal/app/jobs"
|
||||
"framework_v2/internal/app/jwks"
|
||||
"framework_v2/internal/app/logger"
|
||||
"framework_v2/internal/app/server"
|
||||
"framework_v2/internal/routes"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@ -23,7 +23,7 @@ var httpCommand = &cobra.Command{
|
||||
jwks.InitJwksRefresh()
|
||||
jobs.InitAsynQClient()
|
||||
gin.InitGin()
|
||||
server.InitHttp()
|
||||
routes.InitHttp()
|
||||
|
||||
StartHttp()
|
||||
},
|
||||
|
@ -1,8 +1,7 @@
|
||||
package server
|
||||
package routes
|
||||
|
||||
import (
|
||||
"framework_v2/internal/app/facades"
|
||||
"framework_v2/internal/routes"
|
||||
)
|
||||
|
||||
func InitHttp() {
|
||||
@ -10,5 +9,5 @@ func InitHttp() {
|
||||
panic("You must call InitGin() before InitHttp()")
|
||||
}
|
||||
|
||||
routes.InitApiRoutes()
|
||||
InitApiRoutes()
|
||||
}
|
Loading…
Reference in New Issue
Block a user