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  }