36 lines
984 B
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)})
|
|
})
|
|
}
|