Prechádzať zdrojové kódy

feat: add webhook configuration support and validation

lblt 2 týždňov pred
rodič
commit
e144949594
3 zmenil súbory, kde vykonal 17 pridanie a 0 odobranie
  1. 5 0
      pkg/config/config.go
  2. 4 0
      pkg/server/gin.go
  3. 8 0
      pkg/webhook/config.go

+ 5 - 0
pkg/config/config.go

@@ -10,6 +10,7 @@ import (
 	"git.linuxforward.com/byom/byom-golang-lib/pkg/logger"
 	"git.linuxforward.com/byom/byom-golang-lib/pkg/server"
 	"git.linuxforward.com/byom/byom-golang-lib/pkg/storage"
+	"git.linuxforward.com/byom/byom-golang-lib/pkg/webhook"
 	"gopkg.in/yaml.v3"
 )
 
@@ -20,6 +21,7 @@ type Config struct {
 	Database       *database.Config `yaml:"database"`
 	Log            *logger.Config   `yaml:"log"`
 	Storage        *storage.Config  `yaml:"storage"`
+	Webhook        *webhook.Config  `yaml:"webhook,omitempty"`
 	CloudComputing *CloudComputing  `yaml:"cloud_computing,omitempty"`
 	SocialNetworks *SocialNetworks  `yaml:"social_networks,omitempty"`
 }
@@ -167,6 +169,9 @@ func ReadConfig(configPath string) (*Config, error) {
 	if config.Auth != nil {
 		validators = append(validators, config.Auth)
 	}
+	if config.Webhook != nil {
+		validators = append(validators, config.Webhook)
+	}
 
 	if err := ValidateAll(validators...); err != nil {
 		return nil, err

+ 4 - 0
pkg/server/gin.go

@@ -61,6 +61,10 @@ func (s *Server) Close() error {
 	return nil
 }
 
+func (s *Server) AddHandler(h *ServiceHandler) {
+	s.handlers = append(s.handlers, h)
+}
+
 func (s *Server) SetupRoutes() {
 	if len(s.handlers) == 0 {
 		s.logger.Warn("no handlers registered")

+ 8 - 0
pkg/webhook/config.go

@@ -31,3 +31,11 @@ func DefaultConfig() Config {
 		RetryBackoff: time.Second,
 	}
 }
+
+// Validate checks the configuration for required fields
+func (c *Config) Validate() error {
+	if c.BaseURL == "" || c.Domain == "" || c.SecretKey == "" {
+		return ErrInvalidConfig
+	}
+	return nil
+}