From 5ffe536e5779278dcba7d17691e7289d95b51b6b Mon Sep 17 00:00:00 2001 From: Ritesh Rai Date: Tue, 9 Jul 2024 10:49:50 -0400 Subject: [PATCH] feat(validation): Add validation for couchbase config Signed-off-by: Ritesh Rai --- main.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/main.go b/main.go index 48c2fdb..5f67d24 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( + "errors" "log" "os" "os/signal" @@ -81,10 +82,31 @@ func run() error { func handleNewTargetLink(handler *Handler, link provider.InterfaceLinkDefinition) error { handler.Logger.Info("Handling new target link", "link", link) handler.linkedFrom[link.SourceID] = link.TargetConfig + err := ValidateCouchbaseConfig(link.TargetConfig) + if err != nil { + handler.Logger.Error("Invalid couchbase target config", "error", err) + return err + } handler.updateCouchbaseCluster(handler, link.SourceID, link.TargetConfig) return nil } +func ValidateCouchbaseConfig(config map[string]string) error { + if config["username"] == "" { + return errors.New("username is required") + } + if config["password"] == "" { + return errors.New("password is required") + } + if config["bucket"] == "" { + return errors.New("bucket is required") + } + if config["host"] == "" { + return errors.New("host is required") + } + return nil +} + func handleDelTargetLink(handler *Handler, link provider.InterfaceLinkDefinition) error { handler.Logger.Info("Handling del target link", "link", link) delete(handler.linkedFrom, link.Target)