From af463b10153caccfda970f9a3c90ce9c09e9efc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Sat, 12 Dec 2020 17:07:45 +0100 Subject: [PATCH] AddRouter in API. --- internal/api/router.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/internal/api/router.go b/internal/api/router.go index 7573d916..04c3993a 100644 --- a/internal/api/router.go +++ b/internal/api/router.go @@ -14,9 +14,10 @@ import ( ) type ApiManagerCtx struct { - sessions types.SessionManager - desktop types.DesktopManager - capture types.CaptureManager + sessions types.SessionManager + desktop types.DesktopManager + capture types.CaptureManager + routers map[string]func(chi.Router) } func New( @@ -27,9 +28,10 @@ func New( ) *ApiManagerCtx { return &ApiManagerCtx{ - sessions: sessions, - desktop: desktop, - capture: capture, + sessions: sessions, + desktop: desktop, + capture: capture, + routers: make(map[string]func(chi.Router)), } } @@ -46,6 +48,10 @@ func (api *ApiManagerCtx) Route(r chi.Router) { session := auth.GetSession(r) utils.HttpBadRequest(w, "Hi `" + session.ID() + "`, you are authenticated.") }) + + for path, router := range api.routers { + r.Route(path, router) + } } func (api *ApiManagerCtx) Authenticate(next http.Handler) http.Handler { @@ -58,3 +64,7 @@ func (api *ApiManagerCtx) Authenticate(next http.Handler) http.Handler { } }) } + +func (api *ApiManagerCtx) AddRouter(path string, router func(chi.Router)) { + api.routers[path] = router +}