From 22a72de719105e817278dfcd8f7fa956e2c4260c Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Mon, 25 Dec 2023 21:43:08 +0100 Subject: [PATCH] remove ip/resolver/jsonip --- ip/resolver/jsonip/service.go | 42 ----------------- ip/resolver/jsonip/service_test.go | 73 ------------------------------ 2 files changed, 115 deletions(-) delete mode 100644 ip/resolver/jsonip/service.go delete mode 100644 ip/resolver/jsonip/service_test.go diff --git a/ip/resolver/jsonip/service.go b/ip/resolver/jsonip/service.go deleted file mode 100644 index c2b3846..0000000 --- a/ip/resolver/jsonip/service.go +++ /dev/null @@ -1,42 +0,0 @@ -package jsonip - -import ( - "context" - "encoding/json" - "net" - - "dnsupdater/http" - "dnsupdater/ip/internal" -) - -type Service struct { - url string -} - -func New() *Service { - return &Service{ - url: "https://jsonip.com", - } -} - -func (s Service) Name() string { - return "jsonip" -} - -func (s Service) Lookup(ctx context.Context) (net.IP, error) { - resp, err := http.Get(ctx, s.url, nil) - if err != nil { - return nil, err - } - - var v struct { - Ip string `json:"ip"` - Location string `json:"geo-ip"` - Help string `json:"API Help"` - } - if err := json.NewDecoder(resp.Body).Decode(&v); err != nil { - return nil, err - } - - return internal.ParseIP(v.Ip) -} diff --git a/ip/resolver/jsonip/service_test.go b/ip/resolver/jsonip/service_test.go deleted file mode 100644 index c6ca9f8..0000000 --- a/ip/resolver/jsonip/service_test.go +++ /dev/null @@ -1,73 +0,0 @@ -package jsonip - -import ( - "context" - "net" - "net/http" - "net/http/httptest" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestService_Name(t *testing.T) { - s := Service{} - - assert.Equal(t, "jsonip", s.Name()) -} - -func TestService_Lookup(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - _, err := w.Write([]byte(`{"ip":"211.46.32.214","geo-ip":"https://getjsonip.com/#plus","API Help":"https://getjsonip.com/#docs"}`)) - assert.NoError(t, err) - })) - defer server.Close() - - s := Service{url: server.URL} - - ip, err := s.Lookup(context.Background()) - assert.NoError(t, err) - - assert.Equal(t, net.IPv4(211, 46, 32, 214), ip) -} - -func TestService_Lookup_HTTPError(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(404) - })) - defer server.Close() - - s := Service{url: server.URL} - - ip, err := s.Lookup(context.Background()) - assert.EqualError(t, err, "HTTP Response: 404 Not Found") - assert.Nil(t, ip) -} - -func TestService_Lookup_JsonParseError(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - _, err := w.Write([]byte(`invalid_json`)) - assert.NoError(t, err) - })) - defer server.Close() - - s := Service{url: server.URL} - - ip, err := s.Lookup(context.Background()) - assert.EqualError(t, err, "invalid character 'i' looking for beginning of value") - assert.Nil(t, ip) -} - -func TestService_Lookup_IPParseError(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - _, err := w.Write([]byte(`{"ip":"xxx","geo-ip":"https://getjsonip.com/#plus","API Help":"https://getjsonip.com/#docs"}`)) - assert.NoError(t, err) - })) - defer server.Close() - - s := Service{url: server.URL} - - ip, err := s.Lookup(context.Background()) - assert.EqualError(t, err, "invalid IP address: xxx") - assert.Nil(t, ip) -}