Skip to content

Commit

Permalink
Set user agent specific to Tines when making HTTP requests (#37)
Browse files Browse the repository at this point in the history
* Set user agent specific to Tines when making HTTP requests

* Add provider version as header
  • Loading branch information
shayonj authored Nov 16, 2023
1 parent 6c4cb11 commit 7bc952d
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
5 changes: 5 additions & 0 deletions internal/provider/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
type Client struct {
apiToken string
tenantUrl string
version string
client *http.Client
}

Expand Down Expand Up @@ -92,6 +93,8 @@ func (c *Client) ImportStory(ctx context.Context, storyData []byte) (sr StoryRes
}
req.Header.Set("content-type", "application/json")
req.Header.Add("Accept", "application/json")
req.Header.Set("User-Agent", "tines-terraform-client")
req.Header.Set("x-tines-client-version", fmt.Sprintf("tines-terraform-provider-%s", c.version))
req.Header.Set("x-user-token", c.apiToken)

res, err := c.client.Do(req)
Expand Down Expand Up @@ -133,6 +136,8 @@ func (c *Client) DeleteStory(ctx context.Context, storyID basetypes.Int64Value)
}
req.Header.Set("content-type", "application/json")
req.Header.Add("Accept", "application/json")
req.Header.Set("User-Agent", "tines-terraform-client")
req.Header.Set("x-tines-client-version", fmt.Sprintf("tines-terraform-provider-%s", c.version))
req.Header.Set("x-user-token", c.apiToken)

res, err := c.client.Do(req)
Expand Down
7 changes: 7 additions & 0 deletions internal/provider/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ func TestImportStory(t *testing.T) {
assert.Equal(t, "application/json", r.Header.Get("content-type"))
assert.Equal(t, "application/json", r.Header.Get("Accept"))
assert.Equal(t, "dummyToken", r.Header.Get("x-user-token"))
assert.Equal(t, "tines-terraform-client", r.Header.Get("User-Agent"))

var data StoryImportRequest
body, err := io.ReadAll(r.Body)
Expand Down Expand Up @@ -109,10 +110,13 @@ func TestFailedImportStory(t *testing.T) {
assert.Equal(t, "application/json", r.Header.Get("content-type"))
assert.Equal(t, "application/json", r.Header.Get("Accept"))
assert.Equal(t, "dummyToken", r.Header.Get("x-user-token"))
assert.Equal(t, "tines-terraform-client", r.Header.Get("User-Agent"))
assert.Equal(t, "tines-terraform-provider-test", r.Header.Get("x-tines-client-version"))
}))
defer ts.Close()

client, err := NewClient()
client.version = "test"
assert.Nil(t, err)
client.tenantUrl = ts.URL
client.apiToken = "dummyToken"
Expand All @@ -136,9 +140,12 @@ func TestDeleteStory(t *testing.T) {
assert.Equal(t, "application/json", r.Header.Get("content-type"))
assert.Equal(t, "application/json", r.Header.Get("Accept"))
assert.Equal(t, "dummyToken", r.Header.Get("x-user-token"))
assert.Equal(t, "tines-terraform-client", r.Header.Get("User-Agent"))
assert.Equal(t, "tines-terraform-provider-test", r.Header.Get("x-tines-client-version"))
}))
defer ts.Close()
client, err := NewClient()
client.version = "test"
assert.Nil(t, err)
client.tenantUrl = ts.URL
client.apiToken = "dummyToken"
Expand Down
1 change: 1 addition & 0 deletions internal/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ func (p *TinesProvider) Configure(ctx context.Context, req provider.ConfigureReq
)
return
}
client.version = p.version

// Make the Tines client available during DataSource and Resource
// type Configure methods.
Expand Down

0 comments on commit 7bc952d

Please sign in to comment.