-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
routes.go
64 lines (53 loc) · 1.86 KB
/
routes.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package web
import (
"github.com/gin-gonic/gin"
"github.com/muety/kitsquid/app/admin"
"github.com/muety/kitsquid/app/common/errors"
"github.com/muety/kitsquid/app/config"
"github.com/muety/kitsquid/app/events"
"github.com/muety/kitsquid/app/users"
"net/http"
)
func registerFallbackRoutes(router *gin.Engine) {
router.NoMethod(ErrorHandle(), func(c *gin.Context) {
c.AbortWithError(http.StatusMethodNotAllowed, errors.NotFound{}).SetType(gin.ErrorTypePublic)
})
router.NoRoute(ErrorHandle(), func(c *gin.Context) {
c.AbortWithError(http.StatusNotFound, errors.NotFound{}).SetType(gin.ErrorTypePublic)
})
}
func registerStaticRoutes(router *gin.Engine) {
router.Static("/assets", "app/public/build")
router.StaticFile("favicon.ico", "app/public/build/favicon.ico")
}
func registerMainRoutes(router *gin.Engine) *gin.RouterGroup {
group := router.Group("/")
group.Use(ErrorHandle())
group.Use(users.ExtractUser())
group.Use(TemplateContext())
events.RegisterRoutes(router, group)
users.RegisterRoutes(router, group)
admin.RegisterRoutes(router, group)
group.GET("/about", func(c *gin.Context) {
c.HTML(http.StatusOK, "about", gin.H{"tplCtx": c.MustGet(config.TemplateContextKey)})
})
group.GET("/imprint", func(c *gin.Context) {
c.HTML(http.StatusOK, "imprint", gin.H{"tplCtx": c.MustGet(config.TemplateContextKey)})
})
group.GET("/data-privacy", func(c *gin.Context) {
c.HTML(http.StatusOK, "data_privacy", gin.H{"tplCtx": c.MustGet(config.TemplateContextKey)})
})
group.GET("/health", func(c *gin.Context) {
c.String(200, "app=1\ndb=%d", health())
})
return group
}
func registerAPIRoutes(router *gin.Engine) *gin.RouterGroup {
group := router.Group("/api")
group.Use(ApiErrorHandle())
group.Use(users.ExtractUser())
events.RegisterAPIRoutes(router, group)
users.RegisterAPIRoutes(router, group)
admin.RegisterAPIRoutes(router, group)
return group
}