feat(*): 插件中心与模型协议 - 完善声明式协议运行时并增加功能开放控制
This commit is contained in:
35
backend/internal/handler/protocols.go
Normal file
35
backend/internal/handler/protocols.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"infinite-canvas/backend/internal/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func RegisterProtocolRoutes(r *gin.RouterGroup, svc *service.Service) {
|
||||
r.GET("/protocols", func(c *gin.Context) {
|
||||
if _, err := currentUser(c, svc); err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
scope := strings.TrimSpace(c.DefaultQuery("scope", "user.custom-channel"))
|
||||
capability := strings.TrimSpace(c.Query("capability"))
|
||||
ok(c, gin.H{"protocols": svc.ProtocolCatalog(scope, capability, false)})
|
||||
})
|
||||
r.GET("/admin/protocols", func(c *gin.Context) {
|
||||
user, err := currentUser(c, svc)
|
||||
if err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
if err := svc.RequireAdmin(user); err != nil {
|
||||
failService(c, err)
|
||||
return
|
||||
}
|
||||
includeUnavailable := c.Query("includeUnavailable") == "1"
|
||||
capability := strings.TrimSpace(c.Query("capability"))
|
||||
ok(c, gin.H{"protocols": svc.ProtocolCatalog("admin.system-channel", capability, includeUnavailable)})
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user