From f1458b005b6fba4152ce75067cdf6f591265b7df Mon Sep 17 00:00:00 2001 From: Timo Behrendt Date: Wed, 1 Jan 2025 12:44:50 +0100 Subject: [PATCH] tmp --- go.mod | 3 +++ go.sum | 6 ++++++ pkg/dnsProvider/ionos/ionos.go | 23 ++++++++++++++++++++++- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 78299b3..cdafe16 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,10 @@ require ( ) require ( + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/google/uuid v1.6.0 // indirect + github.com/redis/go-redis/v9 v9.7.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/stretchr/testify v1.8.4 // indirect go.uber.org/atomic v1.11.0 // indirect diff --git a/go.sum b/go.sum index 4d6bd32..48000f8 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,11 @@ +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/go-co-op/gocron v1.37.0 h1:ZYDJGtQ4OMhTLKOKMIch+/CY70Brbb1dGdooLEhh7b0= github.com/go-co-op/gocron v1.37.0/go.mod h1:3L/n6BkO7ABj+TrfSVXLRzsP26zmikL4ISkLQ0O8iNY= github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -18,6 +22,8 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E= +github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= diff --git a/pkg/dnsProvider/ionos/ionos.go b/pkg/dnsProvider/ionos/ionos.go index 11249a4..a2a08a6 100644 --- a/pkg/dnsProvider/ionos/ionos.go +++ b/pkg/dnsProvider/ionos/ionos.go @@ -3,18 +3,29 @@ package ionosDnsProvider import ( "errors" "net" + "realdnydns/model/common" "realdnydns/pkg/dnsProvider" ionosAPI "realdnydns/pkg/dnsProvider/ionos/api" + + redis "github.com/redis/go-redis/v9" ) type IONOS struct { - API ionosAPI.IonosAPI + API ionosAPI.IonosAPI + Redis *redis.Client } type IONOSConfig struct { APIKey string `yaml:"api_key"` BaseURL string `yaml:"base_url"` + Redis *IONOSRedisConfig +} + +type IONOSRedisConfig struct { + Address string `yaml:"host"` + Password string `yaml:"password"` + DB int `yaml:"db"` } func NewIonos(config *IONOSConfig) (dnsProvider.DNSProvider, error) { @@ -26,8 +37,18 @@ func NewIonos(config *IONOSConfig) (dnsProvider.DNSProvider, error) { return nil, errors.New("base_url is required") } + var redisClient *redis.Client = nil + if config.Redis != nil { + redisClient = redis.NewClient(&redis.Options{ + Addr: config.Redis.Address, + Password: config.Redis.Password, + DB: config.Redis.DB, + }) + } + return &IONOS{ ionosAPI.New(config.APIKey, config.BaseURL), + redisClient, }, nil }