Files
oc-peer/controllers/distributed_peer.go

82 lines
1.8 KiB
Go
Raw Normal View History

2026-01-15 13:35:11 +01:00
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")
2026-01-26 11:23:04 +01:00
2026-01-15 13:35:11 +01:00
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()
}