package controllers import ( "context" "oc-peer/infrastructure" beego "github.com/beego/beego/v2/server/web" ) // Operations about workflow type DistributedPeerController struct { beego.Controller } // @Title Search // @Description search workspace // @Param search path string true "the word search you want to get" // @Param is_draft query string false // @Success 200 {workspace} models.workspace // @router /search/:search [get] func (o *DistributedPeerController) Search() { //user, peerID, groups := oclib.ExtractTokenInfo(*o.Ctx.Request) // store and return Id or post with UUIDLibDataEnum search := o.Ctx.Input.Param(":search") service := infrastructure.GetDHTService() code := 400 err := "no DHT Service available" if service != nil { if p, errr := service.DiscoverPeers(context.Background(), search); errr == nil { o.Data["json"] = map[string]interface{}{ "data": p, "code": 200, "error": nil, } o.ServeJSON() return } else { err = errr.Error() } } o.Data["json"] = map[string]interface{}{ "data": []interface{}{}, "code": code, "error": err, } o.ServeJSON() } // @Title Get // @Description find peer by peerid // @Param id path string true "the peer id you want to get" // @Success 200 {peer} models.peer // @router /:name [get] func (o *DistributedPeerController) Get() { name := o.Ctx.Input.Param(":name") service := infrastructure.GetDHTService() code := 400 err := "no DHT Service available" if service != nil { if p, errr := service.GetPeer(context.Background(), name); errr == nil { o.Data["json"] = map[string]interface{}{ "data": p, "code": 200, "error": nil, } o.ServeJSON() return } else { err = errr.Error() } } o.Data["json"] = map[string]interface{}{ "data": nil, "code": code, "error": err, } o.ServeJSON() }