/* * @description: 路由配置 * @Author: CP * @Date: 2020-08-23 21:32:54 * @FilePath: \construction_management\web\routes\routes.go */ package routes import ( "github.com/iris-contrib/middleware/csrf" "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/mvc" "go.mod/bootstrap" "go.mod/services" "go.mod/web/api" "go.mod/web/backstage" "go.mod/web/external" "go.mod/web/middleware" ) func Configure(b *bootstrap.Bootstrapper) { //service加载 ProjectAccountService := services.NewProjectAccountService() LoginService := services.NewLoginService() ProjectService := services.NewProjectService() TreeService := services.NewTreeService() BidsectionService := services.NewBidsectionService() BidAccountService := services.NewBidAccountService() ContractService := services.NewContractService() // RpcService := services.NewRpcService() SafeService := services.NewSafeService() RuleService := services.NewRuleService() AnnexService := services.NewAnnexService() SafeAuditService := services.NewSafeAuditService() QualityService := services.NewQualityService() QualityAuditService := services.NewQualityAuditService() ProjectMessageService := services.NewProjectMessageService() VersionService := services.NewVersionService() backstageService := services.NewBackstageService() managerService := services.NewManagerService() groupService := services.NewGroupService() versionService := services.NewVersionService() //CSRF相关 b.Use(middleware.SetCsrf) protect := csrf.Protect([]byte("9AB0F421E53A477C084477AEA06096F5"), csrf.FieldName("csrf"), csrf.Secure(false), csrf.Path("/"), csrf.ErrorHandler(func(ctx iris.Context) { ctx.JSON(iris.Map{"code": -1, "msg": "CSRF token invalid"}) })) //b.Party("/", protect) //protect := NewCsrf() //登录相关 //login := mvc.New(b.Party("/", protect)) // login := mvc.New(b.Party("/")) // login.Register(ProjectAccountService) // login.Register(LoginService) // login.Handle(new(controllers.LoginController)) // todolist相关 // todo := mvc.New(b.Party("/todolist")) // todo.Router.Use(middleware.SessionsAuth) // todo.Handle(new(controllers.TodoController)) // // 合同管理 // contract := mvc.New(b.Party("/contract")) // contract.Router.Use(middleware.SessionsAuth) // contract.Handle(new(controllers.ContractController)) // 安全巡检 //用户相关 // account := mvc.New(b.Party("/account")) // account.Register(ProjectAccountService) // account.Router.Use(middleware.SessionsAuth) // account.Handle(new(controllers.AccountController)) // 项目相关 // project := mvc.New(b.Party("/project")) // project.Router.Use(middleware.SessionsAuth) // project.Register(TreeService) // project.Register(ProjectService) // project.Handle(new(controllers.ProjectController)) //标段相关 // bidsection := mvc.New(b.Party("/bidsection")) // bidsection.Register(ProjectService) // bidsection.Router.Use(middleware.SessionsAuth) // bidsection.Handle(new(controllers.BidsectionController)) // u := &websocket.Upgrader{ // CheckOrigin: func(r *http.Request) bool { // return true // }, // } // ws := mvc.New(b.Party("/ws")) // ws.Handle(lib.Handler(u)) // websocketServer := websocket.New( // websocket.DefaultGorillaUpgrader, /* DefaultGobwasUpgrader can be used too. */ // serverEvents) // b.Get("/swagger/{any:path}", ) // apiTree.Router.Use(middleware.JwtAuth().Serve) // 接口相关 // 登陆接口 apiLogin := mvc.New(b.Party("/api/login", protect)) apiLogin.Register(ProjectAccountService) apiLogin.Register(LoginService) apiLogin.Register(ProjectService) apiLogin.Handle(new(api.LoginApi)) // 项目相关接口 apiProject := mvc.New(b.Party("/api/project", protect)) apiProject.Register(ProjectService) apiProject.Router.Use(middleware.SessionsAuth) apiProject.Router.Use(middleware.AccessAuth) apiProject.Handle(new(api.ProjectApi)) // 项目账号相关接口 apiProjectAccount := mvc.New(b.Party("/api/projectAccount", protect)) apiProjectAccount.Register(ProjectAccountService) apiProjectAccount.Router.Use(middleware.SessionsAuth) apiProjectAccount.Router.Use(middleware.AccessAuth) apiProjectAccount.Handle(new(api.ProjectAccountApi)) // 标段相关接口 apiBidsection := mvc.New(b.Party("/api/bidsection", protect)) apiBidsection.Register(BidsectionService) apiBidsection.Router.Use(middleware.SessionsAuth) apiBidsection.Router.Use(middleware.AccessAuth) apiBidsection.Handle(new(api.BidsectionApi)) // 项目设置接口 apiSetting := mvc.New(b.Party("/api/projectSetting", protect)) apiSetting.Register(ProjectAccountService) apiSetting.Register(ProjectService) apiSetting.Register(BidAccountService) apiSetting.Router.Use(middleware.SessionsAuth) apiSetting.Router.Use(middleware.AccessAuth) apiSetting.Handle(new(api.ProjectSettingApi)) // TreeNode相关接口 apiTree := mvc.New(b.Party("/api/tree", protect)) apiTree.Register(TreeService) apiTree.Router.Use(middleware.SessionsAuth) apiTree.Router.Use(middleware.AccessAuth) apiTree.Handle(new(api.TreeApi)) // 合同管理 apiContract := mvc.New(b.Party("/api/contract", protect)) apiContract.Register(TreeService) apiContract.Register(ContractService) // 中间件 apiContract.Router.Use(middleware.SessionsAuth) apiContract.Router.Use(middleware.AccessAuth) apiContract.Handle(new(api.ContractApi)) // oss相关 apiOss := mvc.New(b.Party("/api/oss", protect)) apiOss.Router.Use(middleware.SessionsAuth) apiOss.Router.Use(middleware.AccessAuth) apiOss.Handle(new(api.OssApi)) // rpc相关 // rpc := mvc.New(b.Party("/api/rpc/test")) // rpc.Register(RpcService) // rpc.Router.Use(middleware.SessionsAuth) // rpc.Router.Use(middleware.AccessAuth) // rpc.Handle(new(api.RpcApi)) // safe apiSafe := mvc.New(b.Party("/api/safe", protect)) apiSafe.Register(SafeService) apiSafe.Router.Use(middleware.SessionsAuth) apiSafe.Router.Use(middleware.AccessAuth) apiSafe.Handle(new(api.SafeApi)) apiSafeAudit := mvc.New(b.Party("/api/safe_audit", protect)) apiSafeAudit.Register(SafeAuditService) apiSafeAudit.Router.Use(middleware.SessionsAuth) apiSafeAudit.Router.Use(middleware.AccessAuth) apiSafeAudit.Handle(new(api.SafeAuditApi)) // quality apiQuality := mvc.New(b.Party("/api/quality", protect)) apiQuality.Register(QualityService) apiQuality.Router.Use(middleware.SessionsAuth) apiQuality.Router.Use(middleware.AccessAuth) apiQuality.Handle(new(api.QualityApi)) apiQualityAudit := mvc.New(b.Party("/api/quality_audit", protect)) apiQualityAudit.Register(QualityAuditService) apiQualityAudit.Router.Use(middleware.SessionsAuth) apiQualityAudit.Router.Use(middleware.AccessAuth) apiQualityAudit.Handle(new(api.QualityAuditApi)) // rule apiRule := mvc.New(b.Party("/api/rule", protect)) apiRule.Register(RuleService) apiRule.Router.Use(middleware.SessionsAuth) apiRule.Router.Use(middleware.AccessAuth) apiRule.Handle(new(api.RuleApi)) // file apiAnnex := mvc.New(b.Party("/api/file", protect)) apiAnnex.Register(AnnexService) apiAnnex.Router.Use(middleware.SessionsAuth) apiAnnex.Router.Use(middleware.AccessAuth) apiAnnex.Handle(new(api.AnnexApi)) apiDashboard := mvc.New(b.Party("/api/dashboard", protect)) apiDashboard.Register(SafeService) apiDashboard.Register(QualityService) apiDashboard.Register(ProjectMessageService) apiDashboard.Register(VersionService) apiDashboard.Router.Use(middleware.SessionsAuth) apiDashboard.Router.Use(middleware.AccessAuth) apiDashboard.Handle(new(api.DashboardApi)) // 对计量接口 jlEx := mvc.New(b.Party("/api/external/jl")) jlEx.Handle(new(external.JlEx)) // 后台相关 backstageCM := mvc.New(b.Party("/api/backstage/login")) backstageCM.Register(backstageService) backstageCM.Handle(new(backstage.LoginBs)) backstageProjectCM := mvc.New(b.Party("/api/backstage/project")) backstageProjectCM.Register(ProjectService) backstageProjectCM.Register(backstageService) backstageProjectCM.Router.Use(middleware.SessionsBackstageAuth) backstageProjectCM.Router.Use(middleware.AccessBackstageAuth) backstageProjectCM.Handle(new(backstage.ProjectBs)) backstageAccountCM := mvc.New(b.Party("/api/backstage/account")) backstageAccountCM.Register(ProjectAccountService) backstageAccountCM.Register(ProjectService) backstageAccountCM.Register(BidAccountService) backstageAccountCM.Register(backstageService) backstageAccountCM.Router.Use(middleware.SessionsBackstageAuth) backstageAccountCM.Router.Use(middleware.AccessBackstageAuth) backstageAccountCM.Handle(new(backstage.ProjectAccountBs)) managerCM := mvc.New(b.Party("/api/backstage/manager")) managerCM.Register(managerService) managerCM.Router.Use(middleware.SessionsBackstageAuth) managerCM.Handle(new(backstage.ManagerBs)) groupCM := mvc.New(b.Party("/api/backstage/group")) groupCM.Register(groupService) groupCM.Router.Use(middleware.SessionsBackstageAuth) groupCM.Handle(new(backstage.GroupBs)) versionCM := mvc.New(b.Party("/api/backstage/version")) versionCM.Register(versionService) versionCM.Router.Use(middleware.SessionsBackstageAuth) versionCM.Handle(new(backstage.VersionBs)) }