Skip to content

Commit a8167f5

Browse files
Merge #241
241: Feature/Analytics r=brunoocasali a=brunoocasali - Add custom User-Agent to every HTTP call. Related to meilisearch/integration-guides#150 Co-authored-by: Bruno Casali <[email protected]>
2 parents 58619b8 + 5a60f9b commit a8167f5

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

src/Meilisearch/Extensions/HttpExtensions.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,13 @@ public static void AddApiKeyToHeader(this HttpClient client, string apiKey)
7474
}
7575
}
7676

77+
public static void AddDefaultUserAgent(this HttpClient client)
78+
{
79+
var version = new Version();
80+
81+
client.DefaultRequestHeaders.Add("User-Agent", version.GetQualifiedVersion());
82+
}
83+
7784
private static StringContent PrepareJsonPayload<T>(T body, JsonSerializerOptions options = null)
7885
{
7986
options = options ?? Constants.JsonSerializerOptionsWriteNulls;

src/Meilisearch/MeilisearchClient.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ public class MeilisearchClient
2626
/// </summary>
2727
/// <param name="url">URL corresponding to Meilisearch server.</param>
2828
/// <param name="apiKey">API Key to connect to the Meilisearch server.</param>
29-
public MeilisearchClient(string url, string apiKey = default)
29+
public MeilisearchClient(string url, string apiKey = default, HttpClient client = null)
3030
{
3131
_http = new HttpClient(new MeilisearchMessageHandler(new HttpClientHandler())) { BaseAddress = new Uri(url) };
3232
_http.AddApiKeyToHeader(apiKey);
33+
_http.AddDefaultUserAgent();
3334
_taskEndpoint = null;
3435
}
3536

@@ -43,6 +44,7 @@ public MeilisearchClient(HttpClient client, string apiKey = default)
4344
{
4445
_http = client;
4546
_http.AddApiKeyToHeader(apiKey);
47+
_http.AddDefaultUserAgent();
4648
}
4749

4850
/// <summary>

tests/Meilisearch.Tests/MeilisearchClientTests.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,5 +145,16 @@ public async Task DeleteIndex()
145145
var finishedTask = await _defaultClient.Index(indexUid).WaitForTaskAsync(task.Uid);
146146
Assert.Equal("succeeded", finishedTask.Status);
147147
}
148+
149+
[Fact]
150+
public void GetDefaultUserAgentHeader()
151+
{
152+
var httpClient = ClientFactory.Instance.CreateClient<MeilisearchClient>();
153+
var client = new MeilisearchClient(httpClient);
154+
var userAgent = string.Join(' ', httpClient.DefaultRequestHeaders.GetValues("User-Agent"));
155+
var version = new Version();
156+
157+
Assert.Equal(version.GetQualifiedVersion(), userAgent);
158+
}
148159
}
149160
}

0 commit comments

Comments
 (0)