separate frontend repository

This commit is contained in:
Alireza Ahmadi
2025-01-28 23:57:53 +01:00
parent f4b1b09362
commit 7faa28a89d
194 changed files with 48 additions and 19256 deletions
+127
View File
@@ -0,0 +1,127 @@
package app
import (
"log"
"s-ui/config"
"s-ui/core"
"s-ui/cronjob"
"s-ui/database"
"s-ui/logger"
"s-ui/service"
"s-ui/sub"
"s-ui/web"
"github.com/op/go-logging"
)
type APP struct {
service.SettingService
configService *service.ConfigService
webServer *web.Server
subServer *sub.Server
cronJob *cronjob.CronJob
logger *logging.Logger
core *core.Core
}
func NewApp() *APP {
return &APP{}
}
func (a *APP) Init() error {
log.Printf("%v %v", config.GetName(), config.GetVersion())
a.initLog()
err := database.InitDB(config.GetDBPath())
if err != nil {
return err
}
// Init Setting
a.SettingService.GetAllSetting()
a.core = core.NewCore()
a.cronJob = cronjob.NewCronJob()
a.webServer = web.NewServer()
a.subServer = sub.NewServer()
a.configService = service.NewConfigService(a.core)
return nil
}
func (a *APP) Start() error {
loc, err := a.SettingService.GetTimeLocation()
if err != nil {
return err
}
trafficAge, err := a.SettingService.GetTrafficAge()
if err != nil {
return err
}
err = a.cronJob.Start(loc, trafficAge)
if err != nil {
return err
}
err = a.webServer.Start()
if err != nil {
return err
}
err = a.subServer.Start()
if err != nil {
return err
}
err = a.configService.StartCore("")
if err != nil {
logger.Error(err)
}
return nil
}
func (a *APP) Stop() {
a.cronJob.Stop()
err := a.subServer.Stop()
if err != nil {
logger.Warning("stop Sub Server err:", err)
}
err = a.webServer.Stop()
if err != nil {
logger.Warning("stop Web Server err:", err)
}
err = a.configService.StopCore()
if err != nil {
logger.Warning("stop Core err:", err)
}
}
func (a *APP) initLog() {
switch config.GetLogLevel() {
case config.Debug:
logger.InitLogger(logging.DEBUG)
case config.Info:
logger.InitLogger(logging.INFO)
case config.Warn:
logger.InitLogger(logging.WARNING)
case config.Error:
logger.InitLogger(logging.ERROR)
default:
log.Fatal("unknown log level:", config.GetLogLevel())
}
}
func (a *APP) RestartApp() {
a.Stop()
a.Start()
}
func (a *APP) GetCore() *core.Core {
return a.core
}