diff --git a/internal/download_client/connection.go b/internal/download_client/connection.go index ea63de9..f2aa1a4 100644 --- a/internal/download_client/connection.go +++ b/internal/download_client/connection.go @@ -50,6 +50,8 @@ func (s *service) testQbittorrentConnection(client domain.DownloadClient) error return err } + log.Debug().Msgf("test client connection for qBittorrent: success") + return nil } @@ -92,7 +94,7 @@ func (s *service) testDelugeConnection(client domain.DownloadClient) error { return err } - log.Debug().Msgf("daemon version: %v", ver) + log.Debug().Msgf("test client connection for Deluge: success - daemon version: %v", ver) return nil } @@ -112,6 +114,8 @@ func (s *service) testRadarrConnection(client domain.DownloadClient) error { return err } + log.Debug().Msgf("test client connection for Radarr: success") + return nil } @@ -130,6 +134,8 @@ func (s *service) testSonarrConnection(client domain.DownloadClient) error { return err } + log.Debug().Msgf("test client connection for Sonarr: success") + return nil } @@ -148,5 +154,7 @@ func (s *service) testLidarrConnection(client domain.DownloadClient) error { return err } + log.Debug().Msgf("test client connection for Lidarr: success") + return nil } diff --git a/pkg/lidarr/client.go b/pkg/lidarr/client.go index 1dee009..fa42742 100644 --- a/pkg/lidarr/client.go +++ b/pkg/lidarr/client.go @@ -4,14 +4,17 @@ import ( "bytes" "encoding/json" "errors" - "fmt" "net/http" + "net/url" + "path" "github.com/rs/zerolog/log" ) func (c *client) get(endpoint string) (*http.Response, error) { - reqUrl := fmt.Sprintf("%v/api/v1/%v", c.config.Hostname, endpoint) + u, err := url.Parse(c.config.Hostname) + u.Path = path.Join(u.Path, "/api/v1/", endpoint) + reqUrl := u.String() req, err := http.NewRequest(http.MethodGet, reqUrl, http.NoBody) if err != nil { @@ -40,7 +43,9 @@ func (c *client) get(endpoint string) (*http.Response, error) { } func (c *client) post(endpoint string, data interface{}) (*http.Response, error) { - reqUrl := fmt.Sprintf("%v/api/v1/%v", c.config.Hostname, endpoint) + u, err := url.Parse(c.config.Hostname) + u.Path = path.Join(u.Path, "/api/v1/", endpoint) + reqUrl := u.String() jsonData, err := json.Marshal(data) if err != nil { diff --git a/pkg/radarr/client.go b/pkg/radarr/client.go index b60cfd3..f5b8f2c 100644 --- a/pkg/radarr/client.go +++ b/pkg/radarr/client.go @@ -4,14 +4,17 @@ import ( "bytes" "encoding/json" "errors" - "fmt" "net/http" + "net/url" + "path" "github.com/rs/zerolog/log" ) func (c *client) get(endpoint string) (*http.Response, error) { - reqUrl := fmt.Sprintf("%v/api/v3/%v", c.config.Hostname, endpoint) + u, err := url.Parse(c.config.Hostname) + u.Path = path.Join(u.Path, "/api/v3/", endpoint) + reqUrl := u.String() req, err := http.NewRequest(http.MethodGet, reqUrl, http.NoBody) if err != nil { @@ -40,7 +43,9 @@ func (c *client) get(endpoint string) (*http.Response, error) { } func (c *client) post(endpoint string, data interface{}) (*http.Response, error) { - reqUrl := fmt.Sprintf("%v/api/v3/%v", c.config.Hostname, endpoint) + u, err := url.Parse(c.config.Hostname) + u.Path = path.Join(u.Path, "/api/v3/", endpoint) + reqUrl := u.String() jsonData, err := json.Marshal(data) if err != nil { diff --git a/pkg/radarr/radarr_test.go b/pkg/radarr/radarr_test.go index 2e9a751..fee76d9 100644 --- a/pkg/radarr/radarr_test.go +++ b/pkg/radarr/radarr_test.go @@ -171,6 +171,19 @@ func Test_client_Test(t *testing.T) { wantErr: true, err: errors.New("unauthorized: bad credentials"), }, + { + name: "fetch_subfolder", + cfg: Config{ + Hostname: srv.URL + "/radarr", + APIKey: key, + BasicAuth: false, + Username: "", + Password: "", + }, + want: &SystemStatusResponse{Version: "3.2.2.5080"}, + err: nil, + wantErr: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/pkg/sonarr/client.go b/pkg/sonarr/client.go index 48d4b08..4d8fbe1 100644 --- a/pkg/sonarr/client.go +++ b/pkg/sonarr/client.go @@ -4,14 +4,17 @@ import ( "bytes" "encoding/json" "errors" - "fmt" "net/http" + "net/url" + "path" "github.com/rs/zerolog/log" ) func (c *client) get(endpoint string) (*http.Response, error) { - reqUrl := fmt.Sprintf("%v/api/v3/%v", c.config.Hostname, endpoint) + u, err := url.Parse(c.config.Hostname) + u.Path = path.Join(u.Path, "/api/v3/", endpoint) + reqUrl := u.String() req, err := http.NewRequest(http.MethodGet, reqUrl, http.NoBody) if err != nil { @@ -40,7 +43,9 @@ func (c *client) get(endpoint string) (*http.Response, error) { } func (c *client) post(endpoint string, data interface{}) (*http.Response, error) { - reqUrl := fmt.Sprintf("%v/api/v3/%v", c.config.Hostname, endpoint) + u, err := url.Parse(c.config.Hostname) + u.Path = path.Join(u.Path, "/api/v3/", endpoint) + reqUrl := u.String() jsonData, err := json.Marshal(data) if err != nil { diff --git a/web/src/components/inputs/input_wide.tsx b/web/src/components/inputs/input_wide.tsx index ccd7b8d..33c9c75 100644 --- a/web/src/components/inputs/input_wide.tsx +++ b/web/src/components/inputs/input_wide.tsx @@ -150,7 +150,7 @@ const NumberFieldWide: React.FC = ({ )} {help && ( -

{help}

+

{help}

)} diff --git a/web/src/forms/settings/DownloadClientForms.tsx b/web/src/forms/settings/DownloadClientForms.tsx index 3f98888..fa5e2e2 100644 --- a/web/src/forms/settings/DownloadClientForms.tsx +++ b/web/src/forms/settings/DownloadClientForms.tsx @@ -46,9 +46,9 @@ interface InitialValues { function FormFieldsDefault() { return ( - + - +
@@ -67,7 +67,7 @@ function FormFieldsArr() { return ( - +