fully Decentralized functionnal OC-PEER

This commit is contained in:
mr
2026-03-04 11:58:13 +01:00
parent c210522502
commit a91a9d91b6
11 changed files with 417 additions and 146 deletions

View File

@@ -8,8 +8,14 @@
package routers
import (
"encoding/json"
"net/http"
"oc-peer/controllers"
"oc-peer/infrastructure"
"strings"
oclib "cloud.o-forge.io/core/oc-lib"
"cloud.o-forge.io/core/oc-lib/tools"
beego "github.com/beego/beego/v2/server/web"
)
@@ -30,4 +36,20 @@ func init() {
),
)
beego.AddNamespace(ns)
// WebSocket route enregistrée en dehors du pipeline Beego
// beego.Handler bypasse le controller pipeline (pas de WriteHeader parasite)
beego.Handler("/oc/decentralized/search/:search", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
parts := strings.Split(strings.TrimSuffix(r.URL.Path, "/"), "/")
search := parts[len(parts)-1]
user, _, _ := oclib.ExtractTokenInfo(*r)
b, _ := json.Marshal(map[string]string{"search": search})
infrastructure.EmitNATS(user, tools.PropalgationMessage{
Action: tools.PB_SEARCH,
DataType: tools.PEER.EnumIndex(),
Payload: b,
})
controllers.Websocket(r.Context(), user, w, r)
}))
}