Skip to content

Commit fabf49e

Browse files
committed
netstandard2.0 support
1 parent f05b208 commit fabf49e

7 files changed

Lines changed: 40 additions & 24 deletions

File tree

‎SpotifyAPI.Web.Auth/SpotifyAPI.Web.Auth.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>netstandard2.1</TargetFrameworks>
3+
<TargetFrameworks>netstandard2.1;netstandard2.0</TargetFrameworks>
44
<PackageId>SpotifyAPI.Web.Auth</PackageId>
55
<Title>SpotifyAPI.Web.Auth</Title>
66
<Authors>Jonas Dellinger</Authors>

‎SpotifyAPI.Web/Http/APIConnector.cs‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,15 @@ private async Task<IResponse> DoRequest(IRequest request)
212212

213213
private async Task ApplyAuthenticator(IRequest request)
214214
{
215+
#if NETSTANDARD2_0
216+
if (_authenticator != null
217+
&& !request.Endpoint.IsAbsoluteUri
218+
|| request.Endpoint.AbsoluteUri.Contains("https://api.spotify.com"))
219+
#else
215220
if (_authenticator != null
216221
&& !request.Endpoint.IsAbsoluteUri
217222
|| request.Endpoint.AbsoluteUri.Contains("https://api.spotify.com", StringComparison.InvariantCulture))
223+
#endif
218224
{
219225
await _authenticator.Apply(request, this).ConfigureAwait(false);
220226
}
@@ -267,11 +273,13 @@ private static void ProcessErrors(IResponse response)
267273
return;
268274
}
269275

270-
throw response.StatusCode switch
276+
switch (response.StatusCode)
271277
{
272-
HttpStatusCode.Unauthorized => new APIUnauthorizedException(response),
273-
_ => new APIException(response),
274-
};
278+
case HttpStatusCode.Unauthorized:
279+
throw new APIUnauthorizedException(response);
280+
default:
281+
throw new APIException(response);
282+
}
275283
}
276284
}
277285
}

‎SpotifyAPI.Web/Http/NetHttpClient.cs‎

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,30 +30,34 @@ public async Task<IResponse> DoRequest(IRequest request)
3030
{
3131
Ensure.ArgumentNotNull(request, nameof(request));
3232

33-
using HttpRequestMessage requestMsg = BuildRequestMessage(request);
34-
var responseMsg = await _httpClient
35-
.SendAsync(requestMsg, HttpCompletionOption.ResponseContentRead)
36-
.ConfigureAwait(false);
33+
using (HttpRequestMessage requestMsg = BuildRequestMessage(request))
34+
{
35+
var responseMsg = await _httpClient
36+
.SendAsync(requestMsg, HttpCompletionOption.ResponseContentRead)
37+
.ConfigureAwait(false);
3738

38-
return await BuildResponse(responseMsg).ConfigureAwait(false);
39+
return await BuildResponse(responseMsg).ConfigureAwait(false);
40+
}
3941
}
4042

4143
private static async Task<IResponse> BuildResponse(HttpResponseMessage responseMsg)
4244
{
4345
Ensure.ArgumentNotNull(responseMsg, nameof(responseMsg));
4446

4547
// We only support text stuff for now
46-
using var content = responseMsg.Content;
47-
var headers = responseMsg.Headers.ToDictionary(header => header.Key, header => header.Value.First());
48-
var body = await responseMsg.Content.ReadAsStringAsync().ConfigureAwait(false);
49-
var contentType = content.Headers?.ContentType?.MediaType;
50-
51-
return new Response(headers)
48+
using (var content = responseMsg.Content)
5249
{
53-
ContentType = contentType,
54-
StatusCode = responseMsg.StatusCode,
55-
Body = body
56-
};
50+
var headers = responseMsg.Headers.ToDictionary(header => header.Key, header => header.Value.First());
51+
var body = await responseMsg.Content.ReadAsStringAsync().ConfigureAwait(false);
52+
var contentType = content.Headers?.ContentType?.MediaType;
53+
54+
return new Response(headers)
55+
{
56+
ContentType = contentType,
57+
StatusCode = responseMsg.StatusCode,
58+
Body = body
59+
};
60+
}
5761
}
5862

5963
private static HttpRequestMessage BuildRequestMessage(IRequest request)

‎SpotifyAPI.Web/Http/SimpleHTTPLogger.cs‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,12 @@ public void OnRequest(IRequest request)
2525
public void OnResponse(IResponse response)
2626
{
2727
Ensure.ArgumentNotNull(response, nameof(response));
28-
28+
#if NETSTANDARD2_0
29+
string body = response.Body?.ToString().Replace("\n", "");
30+
#else
2931
string body = response.Body?.ToString().Replace("\n", "", StringComparison.InvariantCulture);
32+
#endif
33+
3034
body = body?.Substring(0, Math.Min(50, body?.Length ?? 0));
3135
Console.WriteLine("--> {0} {1} {2}\n", response.StatusCode, response.ContentType, body);
3236
}

‎SpotifyAPI.Web/Http/SimpleRetryHandler.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public SimpleRetryHandler(Func<int, Task> sleep)
5252

5353
private static int? ParseTooManyRetriesToMs(IResponse response)
5454
{
55-
if (response.StatusCode != HttpStatusCode.TooManyRequests)
55+
if (response.StatusCode != (HttpStatusCode)429)
5656
{
5757
return null;
5858
}

‎SpotifyAPI.Web/Models/Response/Interfaces/IPlaylistElement.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ public enum ItemType
1212
public interface IPlayableItem
1313
{
1414
[JsonConverter(typeof(StringEnumConverter))]
15-
public ItemType Type { get; }
15+
ItemType Type { get; }
1616
}
1717
}

‎SpotifyAPI.Web/SpotifyAPI.Web.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>netstandard2.1</TargetFrameworks>
4+
<TargetFrameworks>netstandard2.1;netstandard2.0</TargetFrameworks>
55
<!-- <GenerateDocumentationFile>true</GenerateDocumentationFile> -->
66
<PackageId>SpotifyAPI.Web</PackageId>
77
<Title>SpotifyAPI.Web</Title>

0 commit comments

Comments
 (0)