From 22ed13b9df97394702f4a741b147749b7df2637b Mon Sep 17 00:00:00 2001 From: snakem982 Date: Sun, 3 Dec 2023 09:39:34 +0800 Subject: [PATCH] feat: support external api extensions (#852) --- hub/route/external.go | 21 +++++++++++++++++++++ hub/route/server.go | 1 + 2 files changed, 22 insertions(+) create mode 100644 hub/route/external.go diff --git a/hub/route/external.go b/hub/route/external.go new file mode 100644 index 000000000..d2f063582 --- /dev/null +++ b/hub/route/external.go @@ -0,0 +1,21 @@ +package route + +import "github.com/go-chi/chi/v5" + +type externalRouter func(r chi.Router) + +var externalRouters = make([]externalRouter, 0) + +func Register(route ...externalRouter) { + externalRouters = append(externalRouters, route...) +} + +func addExternalRouters(r chi.Router) { + if len(externalRouters) == 0 { + return + } + + for _, caller := range externalRouters { + caller(r) + } +} diff --git a/hub/route/server.go b/hub/route/server.go index 6ececddb7..0733b3103 100644 --- a/hub/route/server.go +++ b/hub/route/server.go @@ -93,6 +93,7 @@ func Start(addr string, tlsAddr string, secret string, r.Mount("/dns", dnsRouter()) r.Mount("/restart", restartRouter()) r.Mount("/upgrade", upgradeRouter()) + addExternalRouters(r) })