Skip to content

Commit

Permalink
添加路由 #29
Browse files Browse the repository at this point in the history
  • Loading branch information
Jsharkc committed Oct 21, 2017
1 parent f74c1a6 commit 4a2d07d
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 1 deletion.
116 changes: 116 additions & 0 deletions backend/controllers/knowledge.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
package controllers

import (
"encoding/json"

"github.com/Jsharkc/TechTree/backend/general"
"github.com/Jsharkc/TechTree/backend/models"
"github.com/Jsharkc/TechTree/backend/utils"
"github.com/Jsharkc/TechTree/lib/log"
)

type KnowledgeController struct {
BaseController
}

func (kc *KnowledgeController) GetKnowledge() {
var (
err error
k []models.Knowledge
flag bool
nid struct{
NID string `json:"nid" valid:"Required"`
}
)

err = json.Unmarshal(kc.Ctx.Input.RequestBody, &nid)
if err != nil {
log.Logger.Error("Get knowledge json unmarshal err:", err)
kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrInvalidParams}
goto finish
}

flag, err = utils.GlobalValid.Valid(&nid)
if !flag {
for _, err := range utils.GlobalValid.Errors {
log.Logger.Error("The knowledge key "+err.Key+" has err:", err)
}

kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrInvalidParams}
goto finish
}

k, err = models.KnowledgeService.GetKnowledgeByNode(nid.NID)
if err != nil {
log.Logger.Error("get knowledge err:", err)
kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrMysql}
goto finish
}

kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrSucceed, general.RespKeyData: k}
finish:
kc.ServeJSON(true)
}

func (kc *KnowledgeController) AdminAddKnowledge() {
var (
err error
k models.Knowledge
flag bool
)

err = json.Unmarshal(kc.Ctx.Input.RequestBody, &k)
if err != nil {
log.Logger.Error("AdminAddKnowledge json unmarshal err:", err)
kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrInvalidParams}
goto finish
}

flag, err = utils.GlobalValid.Valid(&k)
if !flag {
for _, err := range utils.GlobalValid.Errors {
log.Logger.Error("The knowledge key "+err.Key+" has err:", err)
}

kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrInvalidParams}
goto finish
}

err = models.KnowledgeService.AdminAddKnowledge(&k)
if err != nil {
log.Logger.Error("Add knowledge mysql err:", err)
kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrMysql}
goto finish
}

kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrSucceed}
log.Logger.Info("Add question success")
finish:
kc.ServeJSON(true)
}

func (kc *KnowledgeController) Delete() {
var (
err error
id string
)

err = json.Unmarshal(kc.Ctx.Input.RequestBody, &id)
if err != nil || id == "" {
log.Logger.Error("Delete question json unmarshal err:", err)
kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrInvalidParams}
goto finish
}

err = models.KnowledgeService.DeleteKnowledge(id)
if err != nil {
log.Logger.Error("Delete question mysql err:", err)
kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrMysql}
goto finish
}

kc.Data["json"] = map[string]interface{}{general.RespKeyStatus: general.ErrSucceed}
log.Logger.Info("Delete question success")
finish:
kc.ServeJSON(true)
}
2 changes: 1 addition & 1 deletion backend/controllers/question.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ finish:
qc.ServeJSON(true)
}

func (qc *QuestionController) Update() {
func (qc *QuestionController) AddPassed() {
var (
err error
q models.PassedQuestion
Expand Down
16 changes: 16 additions & 0 deletions backend/routers/user/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,22 @@ import (
)

func init() {
// User
beego.Router("/login", &controllers.UserController{}, "post:Login")
beego.Router("/user/register", &controllers.UserController{},"post:Register")

// Node
beego.Router("/node/list", &controllers.NodeController{}, "get:ListAll")
beego.Router("/node/add", &controllers.UserController{}, "post:AddNode")
beego.Router("/node/vote/add", &controllers.UserController{}, "post:Vote")
beego.Router("/node/vote/query", &controllers.UserController{}, "post:QueryVoteExist")
beego.Router("/node/pass/add", &controllers.NodeController{}, "post:AddPass")
beego.Router("/node/pass/query", &controllers.NodeController{}, "post:IsPassed")

// Question
beego.Router("/question/list", &controllers.QuestionController{}, "post:GetQuestion")
beego.Router("/question/pass/add", &controllers.QuestionController{}, "post:AddPassed")

// Knowledge
beego.Router("/knowledge/list", &controllers.KnowledgeController{}, "post:GetKnowledge")
}

0 comments on commit 4a2d07d

Please sign in to comment.