Skip to content

Commit

Permalink
Added Status Code to models
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnnyCrazy committed May 31, 2017
1 parent 3184d55 commit 1c6f317
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 6 deletions.
10 changes: 6 additions & 4 deletions SpotifyAPI/Web/Models/BasicModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,16 @@ public abstract class BasicModel
[JsonProperty("error")]
public Error Error { get; set; }

private WebHeaderCollection _headers;
private ResponseInfo _info;

public bool HasError() => Error != null;

internal void AddResponseInfo(ResponseInfo info) => _headers = info.Headers;
internal void AddResponseInfo(ResponseInfo info) => _info = info;

public string Header(string key) => _headers?.Get(key);
public string Header(string key) => _info.Headers?.Get(key);

public WebHeaderCollection Headers() => _headers;
public WebHeaderCollection Headers() => _info.Headers;

public HttpStatusCode StatusCode() => _info.StatusCode;
}
}
2 changes: 2 additions & 0 deletions SpotifyAPI/Web/Models/ResponseInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ public class ResponseInfo
{
public WebHeaderCollection Headers { get; set; }

public HttpStatusCode StatusCode { get; set; }

public static readonly ResponseInfo Empty = new ResponseInfo();
}
}
8 changes: 6 additions & 2 deletions SpotifyAPI/Web/SpotifyWebClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,9 @@ public Tuple<ResponseInfo, byte[]> DownloadRaw(string url, Dictionary<string, st
}
using (HttpResponseMessage response = Task.Run(() => client.GetAsync(url)).Result)
{
return new Tuple<ResponseInfo, byte[]>(new ResponseInfo()
return new Tuple<ResponseInfo, byte[]>(new ResponseInfo
{
StatusCode = response.StatusCode,
Headers = ConvertHeaders(response.Headers)
}, Task.Run(() => response.Content.ReadAsByteArrayAsync()).Result);
}
Expand All @@ -64,8 +65,9 @@ public async Task<Tuple<ResponseInfo, byte[]>> DownloadRawAsync(string url, Dict
}
using (HttpResponseMessage response = await client.GetAsync(url).ConfigureAwait(false))
{
return new Tuple<ResponseInfo, byte[]>(new ResponseInfo()
return new Tuple<ResponseInfo, byte[]>(new ResponseInfo
{
StatusCode = response.StatusCode,
Headers = ConvertHeaders(response.Headers)
}, await response.Content.ReadAsByteArrayAsync());
}
Expand Down Expand Up @@ -116,6 +118,7 @@ public Tuple<ResponseInfo, byte[]> UploadRaw(string url, string body, string met
{
return new Tuple<ResponseInfo, byte[]>(new ResponseInfo
{
StatusCode = response.StatusCode,
Headers = ConvertHeaders(response.Headers)
}, Task.Run(() => response.Content.ReadAsByteArrayAsync()).Result);
}
Expand All @@ -142,6 +145,7 @@ public async Task<Tuple<ResponseInfo, byte[]>> UploadRawAsync(string url, string
{
return new Tuple<ResponseInfo, byte[]>(new ResponseInfo
{
StatusCode = response.StatusCode,
Headers = ConvertHeaders(response.Headers)
}, await response.Content.ReadAsByteArrayAsync());
}
Expand Down

0 comments on commit 1c6f317

Please sign in to comment.