initial import
This commit is contained in:
commit
987b539e33
12 changed files with 979 additions and 0 deletions
53
frontend/frontend.go
Normal file
53
frontend/frontend.go
Normal file
|
@ -0,0 +1,53 @@
|
|||
package frontend
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/tweag/gerrit-queue/submitqueue"
|
||||
)
|
||||
|
||||
// Frontend holds a gin Engine and the Sergequeue object
|
||||
type Frontend struct {
|
||||
Router *gin.Engine
|
||||
SubmitQueue *submitqueue.SubmitQueue
|
||||
}
|
||||
|
||||
// MakeFrontend configures the router and returns a new Frontend struct
|
||||
func MakeFrontend(router *gin.Engine, submitQueue *submitqueue.SubmitQueue) *Frontend {
|
||||
// FIXME: use go generators and statik
|
||||
router.LoadHTMLGlob("templates/*")
|
||||
router.GET("/submit-queue.json", func(c *gin.Context) {
|
||||
// FIXME: do this periodically
|
||||
err := submitQueue.UpdateHEAD()
|
||||
if err != nil {
|
||||
c.AbortWithError(http.StatusBadGateway, fmt.Errorf("unable to update HEAD"))
|
||||
}
|
||||
c.JSON(http.StatusOK, submitQueue)
|
||||
})
|
||||
|
||||
router.GET("/", func(c *gin.Context) {
|
||||
// FIXME: do this periodically
|
||||
// TODO: add hyperlinks to changesets
|
||||
err := submitQueue.UpdateHEAD()
|
||||
if err != nil {
|
||||
c.AbortWithError(http.StatusBadGateway, fmt.Errorf("unable to update HEAD"))
|
||||
}
|
||||
c.HTML(http.StatusOK, "submit-queue.tmpl.html", gin.H{
|
||||
"series": submitQueue.Series,
|
||||
"projectName": submitQueue.ProjectName,
|
||||
"branchName": submitQueue.BranchName,
|
||||
"HEAD": submitQueue.HEAD,
|
||||
})
|
||||
})
|
||||
return &Frontend{
|
||||
Router: router,
|
||||
SubmitQueue: submitQueue,
|
||||
}
|
||||
}
|
||||
|
||||
// Run starts the webserver on a given address
|
||||
func (f *Frontend) Run(addr string) error {
|
||||
return f.Router.Run(addr)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue