github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/routers/web/web.go (about) 1 package web 2 3 import ( 4 "net/http" 5 6 "github.com/covergates/covergates/config" 7 "github.com/covergates/covergates/core" 8 "github.com/covergates/covergates/web" 9 "github.com/gin-gonic/gin" 10 ) 11 12 // Router for frontend web 13 type Router struct { 14 Config *config.Config 15 LoginMiddleware core.LoginMiddleware 16 SCMService core.SCMService 17 Session core.Session 18 } 19 20 // RegisterRoutes for Gin 21 func (r *Router) RegisterRoutes(e *gin.Engine) { 22 { 23 g := e.Group("/login") 24 g.Use(MiddlewareBindUser(r.Session)) 25 g.Any("/github", 26 MiddlewareLogin(core.Github, r.LoginMiddleware), 27 HandleLogin( 28 r.Config, 29 core.Github, 30 r.SCMService, 31 r.Session, 32 ), 33 ) 34 g.Any("/gitea", 35 MiddlewareLogin(core.Gitea, r.LoginMiddleware), 36 HandleLogin( 37 r.Config, 38 core.Gitea, 39 r.SCMService, 40 r.Session, 41 ), 42 ) 43 g.Any("/gitlab", 44 MiddlewareLogin(core.GitLab, r.LoginMiddleware), 45 HandleLogin( 46 r.Config, 47 core.GitLab, 48 r.SCMService, 49 r.Session)) 50 } 51 e.Any("/logoff", HandleLogout(r.Config, r.Session)) 52 h := gin.WrapH(http.FileServer(web.New())) 53 e.GET("/favicon.ico", h) 54 e.GET("/logo.png", h) 55 e.GET("/js/*filepath", h) 56 e.GET("/css/*filepath", h) 57 e.GET("/img/*filepath", h) 58 e.GET("/fonts/*filepath", h) 59 e.NoRoute(HandleIndex(r.Config)) 60 }