github.com/kotovmak/go-admin@v1.1.1/plugins/admin/router.go (about) 1 package admin 2 3 import ( 4 "github.com/kotovmak/go-admin/context" 5 "github.com/kotovmak/go-admin/modules/auth" 6 "github.com/kotovmak/go-admin/modules/config" 7 "github.com/kotovmak/go-admin/modules/utils" 8 "github.com/kotovmak/go-admin/plugins/admin/modules/response" 9 "github.com/kotovmak/go-admin/template" 10 ) 11 12 // initRouter initialize the router and return the context. 13 func (admin *Admin) initRouter() *Admin { 14 app := context.NewApp() 15 16 route := app.Group("", admin.globalErrorHandler) 17 18 // auth 19 route.GET(config.GetLoginUrl(), admin.handler.ShowLogin) 20 route.POST("/signin", admin.handler.Auth) 21 22 // auto install 23 route.GET("/install", admin.handler.ShowInstall) 24 route.POST("/install/database/check", admin.handler.CheckDatabase) 25 26 checkRepeatedPath := make([]string, 0) 27 for _, themeName := range template.Themes() { 28 for _, path := range template.Get(themeName).GetAssetList() { 29 if !utils.InArray(checkRepeatedPath, path) { 30 checkRepeatedPath = append(checkRepeatedPath, path) 31 route.GET("/assets"+path, admin.handler.Assets) 32 } 33 } 34 } 35 36 for _, path := range template.GetComponentAsset() { 37 route.GET("/assets"+path, admin.handler.Assets) 38 } 39 40 authRoute := route.Group("/", auth.Middleware(admin.Conn)) 41 42 // auth 43 authRoute.GET("/logout", admin.handler.Logout) 44 45 authPrefixRoute := route.Group("/", auth.Middleware(admin.Conn), admin.guardian.CheckPrefix) 46 47 // menus 48 authRoute.POST("/menu/delete", admin.guardian.MenuDelete, admin.handler.DeleteMenu).Name("menu_delete") 49 authRoute.POST("/menu/new", admin.guardian.MenuNew, admin.handler.NewMenu).Name("menu_new") 50 authRoute.POST("/menu/edit", admin.guardian.MenuEdit, admin.handler.EditMenu).Name("menu_edit") 51 authRoute.POST("/menu/order", admin.handler.MenuOrder).Name("menu_order") 52 authRoute.GET("/menu", admin.handler.ShowMenu).Name("menu") 53 authRoute.GET("/menu/edit/show", admin.handler.ShowEditMenu).Name("menu_edit_show") 54 authRoute.GET("/menu/new", admin.handler.ShowNewMenu).Name("menu_new_show") 55 56 authRoute.GET("/plugins", admin.handler.Plugins).Name("plugins") 57 58 if config.IsNotProductionEnvironment() { 59 authRoute.GET("/plugins/store", admin.handler.PluginStore).Name("plugins_store") 60 authRoute.POST("/plugin/download", admin.handler.PluginDownload).Name("plugin_download") 61 authRoute.POST("/plugin/detail", admin.handler.PluginDetail).Name("plugin_detail") 62 } 63 64 authRoute.POST("/server/login", admin.guardian.ServerLogin, admin.handler.ServerLogin).Name("server_login") 65 66 formats := config.GetURLFormats() 67 68 // add delete modify query 69 authPrefixRoute.GET(formats.Detail, admin.handler.ShowDetail).Name("detail") 70 authPrefixRoute.GET(formats.ShowEdit, admin.guardian.ShowForm, admin.handler.ShowForm).Name("show_edit") 71 authPrefixRoute.GET(formats.ShowCreate, admin.guardian.ShowNewForm, admin.handler.ShowNewForm).Name("show_new") 72 authPrefixRoute.POST(formats.Edit, admin.guardian.EditForm, admin.handler.EditForm).Name("edit") 73 authPrefixRoute.POST(formats.Create, admin.guardian.NewForm, admin.handler.NewForm).Name("new") 74 authPrefixRoute.POST(formats.Delete, admin.guardian.Delete, admin.handler.Delete).Name("delete") 75 authPrefixRoute.POST(formats.Export, admin.guardian.Export, admin.handler.Export).Name("export") 76 authPrefixRoute.GET(formats.Info, admin.handler.ShowInfo).Name("info") 77 78 authPrefixRoute.POST(formats.Update, admin.guardian.Update, admin.handler.Update).Name("update") 79 80 authRoute.GET("/application/info", admin.handler.SystemInfo) 81 82 route.ANY("/operation/:__goadmin_op_id", auth.Middleware(admin.Conn), admin.handler.Operation) 83 84 if config.GetOpenAdminApi() { 85 86 // crud json apis 87 apiRoute := route.Group("/api", auth.Middleware(admin.Conn), admin.guardian.CheckPrefix) 88 apiRoute.GET("/list/:__prefix", admin.handler.ApiList).Name("api_info") 89 apiRoute.GET("/detail/:__prefix", admin.handler.ApiDetail).Name("api_detail") 90 apiRoute.POST("/delete/:__prefix", admin.guardian.Delete, admin.handler.Delete).Name("api_delete") 91 apiRoute.POST("/edit/:__prefix", admin.guardian.EditForm, admin.handler.ApiUpdate).Name("api_edit") 92 apiRoute.GET("/edit/form/:__prefix", admin.guardian.ShowForm, admin.handler.ApiUpdateForm).Name("api_show_edit") 93 apiRoute.POST("/create/:__prefix", admin.guardian.NewForm, admin.handler.ApiCreate).Name("api_new") 94 apiRoute.GET("/create/form/:__prefix", admin.guardian.ShowNewForm, admin.handler.ApiCreateForm).Name("api_show_new") 95 apiRoute.POST("/export/:__prefix", admin.guardian.Export, admin.handler.Export).Name("api_export") 96 apiRoute.POST("/update/:__prefix", admin.guardian.Update, admin.handler.Update).Name("api_update") 97 } 98 99 admin.App = app 100 return admin 101 } 102 103 func (admin *Admin) globalErrorHandler(ctx *context.Context) { 104 defer admin.handler.GlobalDeferHandler(ctx) 105 response.OffLineHandler(ctx) 106 ctx.Next() 107 }