Skip to content
This repository was archived by the owner on Dec 26, 2024. It is now read-only.

Commit cdca795

Browse files
authored
fix(autobrr): host url with multiple slash (#89)
1 parent 5169e09 commit cdca795

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

pkg/autobrr/client.go

+24-8
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"io"
1010
"net/http"
1111
"net/http/httputil"
12+
"net/url"
1213
"runtime"
1314
"strconv"
1415
"time"
@@ -72,14 +73,15 @@ func (c *Client) Test(ctx context.Context) error {
7273
}
7374

7475
func (c *Client) GetFilters(ctx context.Context) ([]Filter, error) {
75-
req, err := http.NewRequestWithContext(ctx, http.MethodGet, c.Host+"/api/filters", nil)
76+
reqUrl, err := url.JoinPath(c.Host, "/api/filters")
7677
if err != nil {
7778
return nil, err
7879
}
7980

80-
req.SetBasicAuth(c.BasicUser, c.BasicPass)
81-
req.Header.Add("X-API-Token", c.APIKey)
82-
c.buildUserAgent(req)
81+
req, err := c.newRequest(ctx, http.MethodGet, reqUrl, nil)
82+
if err != nil {
83+
return nil, err
84+
}
8385

8486
res, err := c.client.Do(req)
8587
if err != nil {
@@ -112,14 +114,15 @@ func (c *Client) UpdateFilterByID(ctx context.Context, filterID int, filter Upda
112114
return err
113115
}
114116

115-
req, err := http.NewRequestWithContext(ctx, http.MethodPatch, c.Host+"/api/filters/"+id, bytes.NewBuffer(body))
117+
reqUrl, err := url.JoinPath(c.Host, "/api/filters/", id)
116118
if err != nil {
117119
return err
118120
}
119121

120-
req.SetBasicAuth(c.BasicUser, c.BasicPass)
121-
req.Header.Add("X-API-Token", c.APIKey)
122-
c.buildUserAgent(req)
122+
req, err := c.newRequest(ctx, http.MethodPatch, reqUrl, bytes.NewBuffer(body))
123+
if err != nil {
124+
return err
125+
}
123126

124127
res, err := c.client.Do(req)
125128
if err != nil {
@@ -141,6 +144,19 @@ func (c *Client) UpdateFilterByID(ctx context.Context, filterID int, filter Upda
141144
return nil
142145
}
143146

147+
func (c *Client) newRequest(ctx context.Context, method string, url string, body io.Reader) (*http.Request, error) {
148+
req, err := http.NewRequestWithContext(ctx, method, url, body)
149+
if err != nil {
150+
return nil, err
151+
}
152+
153+
req.SetBasicAuth(c.BasicUser, c.BasicPass)
154+
req.Header.Add("X-API-Token", c.APIKey)
155+
c.buildUserAgent(req)
156+
157+
return req, nil
158+
}
159+
144160
func (c *Client) buildUserAgent(req *http.Request) {
145161
agent := fmt.Sprintf("omegabrr/%s (%s %s)", buildinfo.Version, runtime.GOOS, runtime.GOARCH)
146162

0 commit comments

Comments
 (0)