From 2bd17a06cc47b48c6f83d87b3d5f28d8cfc38ae2 Mon Sep 17 00:00:00 2001 From: Virgil Date: Fri, 3 Apr 2026 21:09:20 +0000 Subject: [PATCH] Improve DNS action usage examples --- action.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/action.go b/action.go index 46d5d4c..f9ead7a 100644 --- a/action.go +++ b/action.go @@ -26,10 +26,11 @@ type ActionDefinition struct { Invoke func(map[string]any) (any, bool, error) } -// ActionRegistrar accepts named DNS action handlers from a service. +// ActionRegistrar is the target for publishing a service's DNS actions. // -// service.RegisterActions(registrar) -// registrar.RegisterAction("dns.health", func(map[string]any) (any, bool, error) { return service.Health(), true, nil }) +// registrar.RegisterAction(ActionHealth, func(map[string]any) (any, bool, error) { +// return service.Health(), true, nil +// }) type ActionRegistrar interface { RegisterAction(name string, invoke func(map[string]any) (any, bool, error)) } @@ -37,6 +38,9 @@ type ActionRegistrar interface { // ActionDefinitions returns the complete DNS action surface in registration order. // // definitions := service.ActionDefinitions() +// for _, definition := range definitions { +// registrar.RegisterAction(definition.Name, definition.Invoke) +// } func (service *Service) ActionDefinitions() []ActionDefinition { return []ActionDefinition{ { @@ -154,7 +158,9 @@ func (service *Service) RegisterActions(registrar ActionRegistrar) { // HandleAction executes a DNS action by name. // -// payload, ok, err := service.HandleAction("dns.resolve", map[string]any{"name": "gateway.charon.lthn"}) +// payload, ok, err := service.HandleAction(ActionResolve, map[string]any{ +// "name": "gateway.charon.lthn", +// }) func (service *Service) HandleAction(name string, values map[string]any) (any, bool, error) { for _, definition := range service.ActionDefinitions() { if definition.Name == name { -- 2.45.3