routes.go 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. /*
  2. * @description: 路由配置
  3. * @Author: CP
  4. * @Date: 2020-08-23 21:32:54
  5. * @FilePath: \construction_management\web\routes\routes.go
  6. */
  7. package routes
  8. import (
  9. "github.com/kataras/iris/v12/mvc"
  10. "go.mod/bootstrap"
  11. "go.mod/services"
  12. "go.mod/web/api"
  13. "go.mod/web/backstage"
  14. "go.mod/web/external"
  15. "go.mod/web/middleware"
  16. )
  17. func Configure(b *bootstrap.Bootstrapper) {
  18. //service加载
  19. ProjectAccountService := services.NewProjectAccountService()
  20. LoginService := services.NewLoginService()
  21. ProjectService := services.NewProjectService()
  22. TreeService := services.NewTreeService()
  23. BidsectionService := services.NewBidsectionService()
  24. BidAccountService := services.NewBidAccountService()
  25. ContractService := services.NewContractService()
  26. // RpcService := services.NewRpcService()
  27. SafeService := services.NewSafeService()
  28. RuleService := services.NewRuleService()
  29. AnnexService := services.NewAnnexService()
  30. SafeAuditService := services.NewSafeAuditService()
  31. QualityService := services.NewQualityService()
  32. QualityAuditService := services.NewQualityAuditService()
  33. ProjectMessageService := services.NewProjectMessageService()
  34. VersionService := services.NewVersionService()
  35. backstageService := services.NewBackstageService()
  36. managerService := services.NewManagerService()
  37. groupService := services.NewGroupService()
  38. versionService := services.NewVersionService()
  39. // b.Protect := csrf.b.Protect([]byte("9AB0F421E53A477C084477AEA06096F5"), csrf.FieldName("csrf"), csrf.Secure(false), csrf.Path("/"), csrf.ErrorHandler(func(ctx iris.Context) {
  40. // ctx.JSON(iris.Map{"code": -1, "msg": "CSRF token invalid"})
  41. // }))
  42. //b.Party("/", b.Protect)
  43. //b.Protect := NewCsrf()
  44. //登录相关
  45. //login := mvc.New(b.Party("/", b.Protect))
  46. // login := mvc.New(b.Party("/"))
  47. // login.Register(ProjectAccountService)
  48. // login.Register(LoginService)
  49. // login.Handle(new(controllers.LoginController))
  50. // todolist相关
  51. // todo := mvc.New(b.Party("/todolist"))
  52. // todo.Router.Use(middleware.SessionsAuth)
  53. // todo.Handle(new(controllers.TodoController))
  54. // // 合同管理
  55. // contract := mvc.New(b.Party("/contract"))
  56. // contract.Router.Use(middleware.SessionsAuth)
  57. // contract.Handle(new(controllers.ContractController))
  58. // 安全巡检
  59. //用户相关
  60. // account := mvc.New(b.Party("/account"))
  61. // account.Register(ProjectAccountService)
  62. // account.Router.Use(middleware.SessionsAuth)
  63. // account.Handle(new(controllers.AccountController))
  64. // 项目相关
  65. // project := mvc.New(b.Party("/project"))
  66. // project.Router.Use(middleware.SessionsAuth)
  67. // project.Register(TreeService)
  68. // project.Register(ProjectService)
  69. // project.Handle(new(controllers.ProjectController))
  70. //标段相关
  71. // bidsection := mvc.New(b.Party("/bidsection"))
  72. // bidsection.Register(ProjectService)
  73. // bidsection.Router.Use(middleware.SessionsAuth)
  74. // bidsection.Handle(new(controllers.BidsectionController))
  75. // u := &websocket.Upgrader{
  76. // CheckOrigin: func(r *http.Request) bool {
  77. // return true
  78. // },
  79. // }
  80. // ws := mvc.New(b.Party("/ws"))
  81. // ws.Handle(lib.Handler(u))
  82. // websocketServer := websocket.New(
  83. // websocket.DefaultGorillaUpgrader, /* DefaultGobwasUpgrader can be used too. */
  84. // serverEvents)
  85. // b.Get("/swagger/{any:path}", )
  86. // apiTree.Router.Use(middleware.JwtAuth().Serve)
  87. // 接口相关
  88. // 登陆接口
  89. apiLogin := mvc.New(b.Party("/api/login", b.Protect))
  90. apiLogin.Register(ProjectAccountService)
  91. apiLogin.Register(LoginService)
  92. apiLogin.Register(ProjectService)
  93. apiLogin.Router.Use(middleware.SetCsrf)
  94. apiLogin.Handle(new(api.LoginApi))
  95. // 项目相关接口
  96. apiProject := mvc.New(b.Party("/api/project", b.Protect))
  97. apiProject.Register(ProjectService)
  98. apiProject.Router.Use(middleware.SessionsAuth)
  99. apiProject.Router.Use(middleware.AccessAuth)
  100. apiProject.Router.Use(middleware.SetCsrf)
  101. apiProject.Handle(new(api.ProjectApi))
  102. // 项目账号相关接口
  103. apiProjectAccount := mvc.New(b.Party("/api/projectAccount", b.Protect))
  104. apiProjectAccount.Register(ProjectAccountService)
  105. apiProjectAccount.Router.Use(middleware.SessionsAuth)
  106. apiProjectAccount.Router.Use(middleware.AccessAuth)
  107. apiProjectAccount.Router.Use(middleware.SetCsrf)
  108. apiProjectAccount.Handle(new(api.ProjectAccountApi))
  109. // 标段相关接口
  110. apiBidsection := mvc.New(b.Party("/api/bidsection", b.Protect))
  111. apiBidsection.Register(BidsectionService)
  112. apiBidsection.Router.Use(middleware.SessionsAuth)
  113. apiBidsection.Router.Use(middleware.AccessAuth)
  114. apiBidsection.Router.Use(middleware.SetCsrf)
  115. apiBidsection.Handle(new(api.BidsectionApi))
  116. // 项目设置接口
  117. apiSetting := mvc.New(b.Party("/api/projectSetting", b.Protect))
  118. apiSetting.Register(ProjectAccountService)
  119. apiSetting.Register(ProjectService)
  120. apiSetting.Register(BidAccountService)
  121. apiSetting.Router.Use(middleware.SessionsAuth)
  122. apiSetting.Router.Use(middleware.AccessAuth)
  123. apiSetting.Router.Use(middleware.SetCsrf)
  124. apiSetting.Handle(new(api.ProjectSettingApi))
  125. // TreeNode相关接口
  126. apiTree := mvc.New(b.Party("/api/tree", b.Protect))
  127. apiTree.Register(TreeService)
  128. apiTree.Router.Use(middleware.SessionsAuth)
  129. apiTree.Router.Use(middleware.AccessAuth)
  130. apiTree.Router.Use(middleware.SetCsrf)
  131. apiTree.Handle(new(api.TreeApi))
  132. // 合同管理
  133. apiContract := mvc.New(b.Party("/api/contract", b.Protect))
  134. apiContract.Register(TreeService)
  135. apiContract.Register(ContractService)
  136. // 中间件
  137. apiContract.Router.Use(middleware.SessionsAuth)
  138. apiContract.Router.Use(middleware.AccessAuth)
  139. apiContract.Router.Use(middleware.SetCsrf)
  140. apiContract.Handle(new(api.ContractApi))
  141. // oss相关
  142. apiOss := mvc.New(b.Party("/api/oss", b.Protect))
  143. apiOss.Router.Use(middleware.SessionsAuth)
  144. apiOss.Router.Use(middleware.AccessAuth)
  145. apiOss.Router.Use(middleware.SetCsrf)
  146. apiOss.Handle(new(api.OssApi))
  147. // rpc相关
  148. // rpc := mvc.New(b.Party("/api/rpc/test"))
  149. // rpc.Register(RpcService)
  150. // rpc.Router.Use(middleware.SessionsAuth)
  151. // rpc.Router.Use(middleware.AccessAuth)
  152. // rpc.Handle(new(api.RpcApi))
  153. // safe
  154. apiSafe := mvc.New(b.Party("/api/safe", b.Protect))
  155. apiSafe.Register(SafeService)
  156. apiSafe.Router.Use(middleware.SessionsAuth)
  157. apiSafe.Router.Use(middleware.AccessAuth)
  158. apiSafe.Router.Use(middleware.SetCsrf)
  159. apiSafe.Handle(new(api.SafeApi))
  160. apiSafeAudit := mvc.New(b.Party("/api/safe_audit", b.Protect))
  161. apiSafeAudit.Register(SafeAuditService)
  162. apiSafeAudit.Router.Use(middleware.SessionsAuth)
  163. apiSafeAudit.Router.Use(middleware.AccessAuth)
  164. apiSafeAudit.Router.Use(middleware.SetCsrf)
  165. apiSafeAudit.Handle(new(api.SafeAuditApi))
  166. // quality
  167. apiQuality := mvc.New(b.Party("/api/quality", b.Protect))
  168. apiQuality.Register(QualityService)
  169. apiQuality.Router.Use(middleware.SessionsAuth)
  170. apiQuality.Router.Use(middleware.AccessAuth)
  171. apiQuality.Router.Use(middleware.SetCsrf)
  172. apiQuality.Handle(new(api.QualityApi))
  173. apiQualityAudit := mvc.New(b.Party("/api/quality_audit", b.Protect))
  174. apiQualityAudit.Register(QualityAuditService)
  175. apiQualityAudit.Router.Use(middleware.SessionsAuth)
  176. apiQualityAudit.Router.Use(middleware.AccessAuth)
  177. apiQualityAudit.Router.Use(middleware.SetCsrf)
  178. apiQualityAudit.Handle(new(api.QualityAuditApi))
  179. // rule
  180. apiRule := mvc.New(b.Party("/api/rule", b.Protect))
  181. apiRule.Register(RuleService)
  182. apiRule.Router.Use(middleware.SessionsAuth)
  183. apiRule.Router.Use(middleware.AccessAuth)
  184. apiRule.Router.Use(middleware.SetCsrf)
  185. apiRule.Handle(new(api.RuleApi))
  186. // file
  187. apiAnnex := mvc.New(b.Party("/api/file", b.Protect))
  188. apiAnnex.Register(AnnexService)
  189. apiAnnex.Router.Use(middleware.SessionsAuth)
  190. apiAnnex.Router.Use(middleware.AccessAuth)
  191. apiAnnex.Router.Use(middleware.SetCsrf)
  192. apiAnnex.Handle(new(api.AnnexApi))
  193. apiDashboard := mvc.New(b.Party("/api/dashboard", b.Protect))
  194. apiDashboard.Register(SafeService)
  195. apiDashboard.Register(QualityService)
  196. apiDashboard.Register(ProjectMessageService)
  197. apiDashboard.Register(VersionService)
  198. apiDashboard.Router.Use(middleware.SessionsAuth)
  199. apiDashboard.Router.Use(middleware.AccessAuth)
  200. apiDashboard.Router.Use(middleware.SetCsrf)
  201. apiDashboard.Handle(new(api.DashboardApi))
  202. // 对计量接口
  203. jlEx := mvc.New(b.Party("/api/external/jl"))
  204. jlEx.Handle(new(external.JlEx))
  205. // 后台相关
  206. backstageCM := mvc.New(b.Party("/api/backstage/login", b.Protect))
  207. backstageCM.Register(backstageService)
  208. backstageCM.Router.Use(middleware.SetCsrf)
  209. backstageCM.Handle(new(backstage.LoginBs))
  210. backstageProjectCM := mvc.New(b.Party("/api/backstage/project", b.Protect))
  211. backstageProjectCM.Register(ProjectService)
  212. backstageProjectCM.Register(backstageService)
  213. backstageProjectCM.Router.Use(middleware.SessionsBackstageAuth)
  214. backstageProjectCM.Router.Use(middleware.AccessBackstageAuth)
  215. backstageProjectCM.Router.Use(middleware.SetCsrf)
  216. backstageProjectCM.Handle(new(backstage.ProjectBs))
  217. backstageAccountCM := mvc.New(b.Party("/api/backstage/account", b.Protect))
  218. backstageAccountCM.Register(ProjectAccountService)
  219. backstageAccountCM.Register(ProjectService)
  220. backstageAccountCM.Register(BidAccountService)
  221. backstageAccountCM.Register(backstageService)
  222. backstageAccountCM.Router.Use(middleware.SessionsBackstageAuth)
  223. backstageAccountCM.Router.Use(middleware.AccessBackstageAuth)
  224. backstageAccountCM.Router.Use(middleware.SetCsrf)
  225. backstageAccountCM.Handle(new(backstage.ProjectAccountBs))
  226. managerCM := mvc.New(b.Party("/api/backstage/manager"))
  227. managerCM.Register(managerService)
  228. managerCM.Router.Use(middleware.SessionsBackstageAuth)
  229. managerCM.Handle(new(backstage.ManagerBs))
  230. groupCM := mvc.New(b.Party("/api/backstage/group"))
  231. groupCM.Register(groupService)
  232. groupCM.Router.Use(middleware.SessionsBackstageAuth)
  233. groupCM.Handle(new(backstage.GroupBs))
  234. versionCM := mvc.New(b.Party("/api/backstage/version"))
  235. versionCM.Register(versionService)
  236. versionCM.Router.Use(middleware.SessionsBackstageAuth)
  237. versionCM.Handle(new(backstage.VersionBs))
  238. //CSRF相关
  239. // b.Use(middleware.SetCsrf)
  240. }