/
router.go
56 lines (48 loc) · 2.01 KB
/
router.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
// @APIVersion 1.0.0
// @Title ithome-iron-beego API
// @Description ithome-iron-beego API demo.
// @Contact elleryq@gmail.com
package routers
import (
"strings"
"github.com/elleryq/ithome-iron-beego/controllers"
"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
)
var FilterMember = func(ctx *context.Context) {
if strings.HasPrefix(ctx.Input.URL(), "/login") {
return
}
_, ok := ctx.Input.Session("user_id").(int)
if !ok {
ctx.Redirect(302, "/login")
}
}
func init() {
beego.Router("/", &controllers.MainController{})
beego.Router("/about", &controllers.AboutController{})
beego.Router("/login", &controllers.LoginController{}, "get:Get")
beego.Router("/login", &controllers.LoginController{}, "post:Post")
beego.Router("/logout", &controllers.LogoutController{}, "get:Get")
beego.Router("/post/:id", &controllers.PostController{}, "get:GetOne")
beego.InsertFilter("/backend/*", beego.BeforeRouter, FilterMember)
beego.Router("/backend/post", &controllers.PostController{}, "get:GetAll")
beego.Router("/backend/post/create", &controllers.PostController{}, "get:GetCreatePostForm")
beego.Router("/backend/post/create", &controllers.PostController{}, "post:PostCreatePostForm")
beego.Router("/backend/post/:id/edit", &controllers.PostController{}, "get:GetEditPostForm")
beego.Router("/backend/post/:id/edit", &controllers.PostController{}, "post:PostEditPostForm")
beego.Router("/backend/post/:id/delete", &controllers.PostController{}, "get:GetDeletePostForm")
beego.Router("/backend/post/:id/delete", &controllers.PostController{}, "post:PostDeletePostForm")
beego.Router("/backend/myuser", &controllers.MyUserController{}, "get:GetAll")
beego.Router("/backend/myuser/create", &controllers.MyUserController{}, "get:GetAddForm")
beego.Router("/backend/myuser/create", &controllers.MyUserController{}, "post:PostAddForm")
// Automated API Documentation
ns := beego.NewNamespace(
"/v1",
beego.NSNamespace(
"/user",
beego.NSInclude(&controllers.UserController{}),
),
)
beego.AddNamespace(ns)
}