package controllers import ( "encoding/json" "oc-discovery/models" beego "github.com/beego/beego/v2/server/web" ) // Operations about peer type PeerController struct { beego.Controller } // @Title Create // @Description create peer // @Param body body models.Peer true "The peer content" // @Success 200 {string} models.Peer.Id // @Failure 403 body is empty // @router / [post] func (o *PeerController) Post() { var ob models.Peer json.Unmarshal(o.Ctx.Input.RequestBody, &ob) peerid := models.AddOne(ob) o.Data["json"] = map[string]string{"PeerId": peerid} o.ServeJSON() } // @Title Get // @Description find peer by peerid // @Param peerId path string true "the peerid you want to get" // @Success 200 {peer} models.Peer // @Failure 403 :peerId is empty // @router /:peerId [get] func (o *PeerController) Get() { peerId := o.Ctx.Input.Param(":peerId") if peerId != "" { ob, err := models.GetOne(peerId) if err != nil { o.Data["json"] = err.Error() } else { o.Data["json"] = ob } } o.ServeJSON() } // @Title GetAll // @Description get all peers // @Success 200 // @router / [get] func (o *PeerController) GetAll() { obs := models.GetAll() o.Data["json"] = obs o.ServeJSON() } // @Title Update // @Description update the peer // @Param peerId path string true "The peerid you want to update" // @Param body body models.Peer true "The body" // @Success 200 {peer} models.Peer // @Failure 403 :peerId is empty // @router /:peerId [put] func (o *PeerController) Put() { peerId := o.Ctx.Input.Param(":peerId") var ob models.Peer json.Unmarshal(o.Ctx.Input.RequestBody, &ob) err := models.Update(peerId, ob.Score) if err != nil { o.Data["json"] = err.Error() } else { o.Data["json"] = "update success!" } o.ServeJSON() } // @Title Delete // @Description delete the peer // @Param peerId path string true "The peerId you want to delete" // @Success 200 {string} delete success! // @Failure 403 peerId is empty // @router /:peerId [delete] func (o *PeerController) Delete() { peerId := o.Ctx.Input.Param(":peerId") models.Delete(peerId) o.Data["json"] = "delete success!" o.ServeJSON() }