Files
ttstd-infinite-canvas/backend/internal/handler/protocols.go

36 lines
984 B
Go

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)})
})
}