Api Struct + Nano env

This commit is contained in:
mr
2026-04-23 09:48:39 +02:00
parent 9c2663601a
commit e70e89b630
2 changed files with 35 additions and 21 deletions

View File

@@ -9,6 +9,9 @@ import "sync"
// =================================================== // ===================================================
type Config struct { type Config struct {
IsApi bool
IsNano bool
APIPort int APIPort int
NATSUrl string NATSUrl string
MongoUrl string MongoUrl string
@@ -48,10 +51,13 @@ func GetConfig() *Config {
return instance return instance
} }
func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string, port int, func SetConfig(isNano bool, isAPI bool, mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string, port int,
pkPath, ppPath, pkPath, ppPath,
internalCatalogAPI, internalSharedAPI, internalWorkflowAPI, internalWorkspaceAPI, internalCatalogAPI, internalSharedAPI, internalWorkflowAPI, internalWorkspaceAPI,
internalPeerAPI, internalDatacenterAPI string, internalSchedulerAPI string) *Config { internalPeerAPI, internalDatacenterAPI string, internalSchedulerAPI string) *Config {
GetConfig().IsNano = isNano
GetConfig().IsApi = isAPI
GetConfig().MongoUrl = mongoUrl GetConfig().MongoUrl = mongoUrl
GetConfig().MongoDatabase = database GetConfig().MongoDatabase = database
GetConfig().NATSUrl = natsUrl GetConfig().NATSUrl = natsUrl

View File

@@ -155,6 +155,9 @@ func InitDaemon(appName string) {
// resources.InitNative() // resources.InitNative()
// feed the library with the loaded config // feed the library with the loaded config
SetConfig( SetConfig(
o.GetBoolDefault("IS_NANO", false),
o.GetBoolDefault("IS_API", true),
o.GetStringDefault("MONGO_URL", "mongodb://127.0.0.1:27017"), o.GetStringDefault("MONGO_URL", "mongodb://127.0.0.1:27017"),
o.GetStringDefault("MONGO_DATABASE", "DC_myDC"), o.GetStringDefault("MONGO_DATABASE", "DC_myDC"),
o.GetStringDefault("NATS_URL", "nats://localhost:4222"), o.GetStringDefault("NATS_URL", "nats://localhost:4222"),
@@ -172,12 +175,14 @@ func InitDaemon(appName string) {
o.GetStringDefault("INTERNAL_DATACENTER_API", "oc-datacenter"), o.GetStringDefault("INTERNAL_DATACENTER_API", "oc-datacenter"),
o.GetStringDefault("INTERNAL_SCHEDULER_API", "oc-scheduler"), o.GetStringDefault("INTERNAL_SCHEDULER_API", "oc-scheduler"),
) )
if config.GetConfig().IsApi {
// Beego init // Beego init
beego.BConfig.AppName = appName beego.BConfig.AppName = appName
beego.BConfig.Listen.HTTPPort = o.GetIntDefault("port", 8080) beego.BConfig.Listen.HTTPPort = o.GetIntDefault("port", 8080)
beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
} }
}
type IDTokenClaims struct { type IDTokenClaims struct {
UserID string `json:"user_id"` UserID string `json:"user_id"`
@@ -280,6 +285,7 @@ func extractFromToken(token string, attr string) string {
func InitAPI(appName string, extraRoutes ...map[string][]string) { func InitAPI(appName string, extraRoutes ...map[string][]string) {
InitDaemon(appName) InitDaemon(appName)
if config.GetConfig().IsApi {
beego.BConfig.Listen.HTTPPort = config.GetConfig().APIPort beego.BConfig.Listen.HTTPPort = config.GetConfig().APIPort
beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
@@ -291,9 +297,11 @@ func InitAPI(appName string, extraRoutes ...map[string][]string) {
AllowCredentials: true, AllowCredentials: true,
}) })
beego.InsertFilter("*", beego.BeforeRouter, c) beego.InsertFilter("*", beego.BeforeRouter, c)
api := &tools.API{} api := &tools.API{}
api.Discovered(beego.BeeApp.Handlers.GetAllControllerInfo(), extraRoutes...) api.Discovered(beego.BeeApp.Handlers.GetAllControllerInfo(), extraRoutes...)
} }
}
// //
// Expose subpackages // Expose subpackages
@@ -314,11 +322,11 @@ func GetLogger() zerolog.Logger {
* @param logLevel string * @param logLevel string
* @return *Config * @return *Config
*/ */
func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string, func SetConfig(isNano bool, isApi bool, mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string,
port int, pppath string, pkpath string, port int, pppath string, pkpath string,
internalCatalogAPI, internalSharedAPI, internalWorkflowAPI, internalCatalogAPI, internalSharedAPI, internalWorkflowAPI,
internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI string, internalSchedulerAPI string) *config.Config { internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI string, internalSchedulerAPI string) *config.Config {
cfg := config.SetConfig(mongoUrl, database, natsUrl, lokiUrl, logLevel, port, pkpath, pppath, internalCatalogAPI, internalSharedAPI, internalWorkflowAPI, cfg := config.SetConfig(isNano, isApi, mongoUrl, database, natsUrl, lokiUrl, logLevel, port, pkpath, pppath, internalCatalogAPI, internalSharedAPI, internalWorkflowAPI,
internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI, internalSchedulerAPI) internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI, internalSchedulerAPI)
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {