package api import ( "context" "likedream-goframe/internal/common/cst" "likedream-goframe/internal/controller/agent" "likedream-goframe/internal/controller/balance" "likedream-goframe/internal/controller/card" "likedream-goframe/internal/controller/common" "likedream-goframe/internal/controller/config" "likedream-goframe/internal/controller/course" "likedream-goframe/internal/controller/cpdaily" "likedream-goframe/internal/controller/menu" "likedream-goframe/internal/controller/music" "likedream-goframe/internal/controller/role" "likedream-goframe/internal/controller/user" "likedream-goframe/internal/controller/user_login" "likedream-goframe/internal/middleware" "likedream-goframe/internal/utils" _ "github.com/gogf/gf/contrib/nosql/redis/v2" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/samber/oops" ) func StartServer(ctx context.Context) { s := g.Server() port, err := g.Cfg().Get(ctx, cst.ConfigServerPort) utils.OkOrPanic(err) s.SetNameToUriType(3) s.Use(middleware.ExceptionHandler) s.BindStatusHandler(404, common.NewBaseV1().NotFound) s.Group("/v1", func(group *ghttp.RouterGroup) { group.Bind(user_login.NewUserLoginV1()) group.Bind(config.NewMailOAuthCtrlV1()) systemGroup := group.Group("/system").Middleware(middleware.AuthHandler, middleware.PermissionHandler) systemGroup.Bind(role.NewV1()) systemGroup.Bind(menu.NewV1()) systemGroup.Bind(user.NewUserCtrlV1()) systemGroup.Bind(config.NewConfigCtrlV1()) systemGroup.Bind(config.NewAIConfigCtrlV1()) userGroup := group.Group("/user").Middleware(middleware.AuthHandler, middleware.PermissionHandler) userGroup.Bind(user_login.NewUserInfoV1()) userGroup.Bind(balance.NewBalanceCtrlV1()) agentGroup := group.Group("/agent").Middleware(middleware.AuthHandler, middleware.PermissionHandler) agentGroup.Bind(agent.NewV1()) agentGroup.Bind(card.NewCardCtrlV1()) cpdailyGroup := group.Group("/cpdaily").Middleware(middleware.AuthHandler, middleware.PermissionHandler) cpdailyGroup.Bind(cpdaily.NewCpUserCtrlV1()) cpdailyGroup.Bind(cpdaily.NewCpTaskCtrlV1()) cpdailyGroup.Bind(cpdaily.NewCpImageCtrlV1()) cpdailyGroup.Bind(cpdaily.NewCpTaskLogCtrlV1()) cpdailyGroup.Bind(cpdaily.NewCpLeaveCtrlV1()) musicGroup := group.Group("/music").Middleware(middleware.AuthHandler, middleware.PermissionHandler) musicGroup.Bind(music.NewMusicCtrlV1()) courseGroup := group.Group("/course").Middleware(middleware.AuthHandler, middleware.PermissionHandler) courseGroup.Bind(course.NewXxtCtrlV1()) courseGroup.Bind(course.NewSmartEduSCCtrlV1()) }) s.SetPort(port.Int()) s.GetOpenApi().Config.IgnorePkgPath = true err = s.Start() utils.OkOrPanic(err, oops.WithContext(ctx).Wrap) } func StopServer() { e := g.Server().Shutdown() utils.OkOrPanic(e) }