From ae37a186a9c58f37f43087ebf8e72fc2f16a6915 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Sun, 17 Mar 2024 08:41:40 -0400 Subject: [PATCH] feat: add dedicated registry for api objects --- api/registry/registry.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/api/registry/registry.go b/api/registry/registry.go index f11ffa9..d8bdd98 100644 --- a/api/registry/registry.go +++ b/api/registry/registry.go @@ -20,20 +20,34 @@ type APIEntry struct { } var apiEntryRegistry []APIEntry +var apiRegistry map[string]API var router *router2.APIRouter func init() { router = router2.NewAPIRouter() + apiRegistry = make(map[string]API) } func RegisterEntry(entry APIEntry) { apiEntryRegistry = append(apiEntryRegistry, entry) } +func RegisterAPI(api API) { + apiRegistry[api.Name()] = api +} + func GetEntryRegistry() []APIEntry { return apiEntryRegistry } +func GetAPI(name string) API { + if _, ok := apiRegistry[name]; !ok { + panic("API not found: " + name) + } + + return apiRegistry[name] +} + func GetRouter() *router2.APIRouter { return router }