Skip to content

Commit

Permalink
Merge pull request #174 from WestDiscGolf/issue-167
Browse files Browse the repository at this point in the history
Update DeleteSubscriptionAsync parameters order for consistency - fix 167
  • Loading branch information
aarondcoleman committed Jun 20, 2016
2 parents 23bc852 + e4f277e commit 7c88b7d
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 28 deletions.
4 changes: 2 additions & 2 deletions Fitbit.Portable.Tests/RemoveSubscriptionTests.cs
Expand Up @@ -27,7 +27,7 @@ public void DeleteSubscription_Correctly()

//Any unexpected behavior will throw exception or fail on request checks (in handler)
//Pass APICollectionType.user to delete subscriptions for all data sets
sut.DeleteSubscriptionAsync(subId, APICollectionType.user).Wait();
sut.DeleteSubscriptionAsync(APICollectionType.user, subId).Wait();
}

[Test]
Expand All @@ -42,7 +42,7 @@ public void DeleteSubscriptonFromSpecificCollection()
var sut = this.SetupFitbitClient(null, expectedUrl, HttpMethod.Delete);

//Any unexpected behavior will throw exception or fail on request checks (in handler)
sut.DeleteSubscriptionAsync(subId, collection).Wait();
sut.DeleteSubscriptionAsync(collection, subId).Wait();

}

Expand Down
53 changes: 27 additions & 26 deletions Fitbit.Portable/FitbitClient.cs
Expand Up @@ -716,6 +716,33 @@ public async Task<ApiSubscription> AddSubscriptionAsync(APICollectionType apiCol
return serializer.Deserialize<ApiSubscription>(responseBody);
}


public async Task DeleteSubscriptionAsync(APICollectionType collection, string uniqueSubscriptionId, string subscriberId = null)
{
var collectionString = string.Empty;

if (collection == APICollectionType.user)
collectionString = string.Empty;
else
collectionString = collection.ToString() + @"/";

string url = "/1/user/-/{2}apiSubscriptions/{1}.json";
string apiCall = FitbitClientHelperExtensions.ToFullUrl(url, args: new object[] { uniqueSubscriptionId, collectionString });

if (subscriberId != null)
{
HttpClient.DefaultRequestHeaders.Add(Constants.Headers.XFitbitSubscriberId, subscriberId);
}

var response = await HttpClient.DeleteAsync(apiCall);

if (response.StatusCode != HttpStatusCode.NoContent)
{
var errors = new JsonDotNetSerializer().ParseErrors(await response.Content.ReadAsStringAsync());
throw new FitbitException("Unexpected response message", errors);
}
}

private string FormatKey(APICollectionType apiCollectionType, string format)
{
string strValue = apiCollectionType == APICollectionType.user ? string.Empty : apiCollectionType.ToString();
Expand Down Expand Up @@ -776,31 +803,5 @@ private async Task HandleResponse(HttpResponseMessage response)
throw new FitbitException($"An error has occured. Please see error list for details - {response.StatusCode}", errors);
}
}

public async Task DeleteSubscriptionAsync(string uniqueSubscriptionId, APICollectionType collection, string subscriberId = null)
{
var collectionString = string.Empty;

if (collection == APICollectionType.user)
collectionString = string.Empty;
else
collectionString = collection.ToString() + @"/";

string url = "/1/user/-/{2}apiSubscriptions/{1}.json";
string apiCall = FitbitClientHelperExtensions.ToFullUrl(url, args: new object[] { uniqueSubscriptionId, collectionString });

if (subscriberId != null)
{
HttpClient.DefaultRequestHeaders.Add(Constants.Headers.XFitbitSubscriberId, subscriberId);
}

var response = await HttpClient.DeleteAsync(apiCall);

if (response.StatusCode != HttpStatusCode.NoContent)
{
var errors = new JsonDotNetSerializer().ParseErrors(await response.Content.ReadAsStringAsync());
throw new FitbitException("Unexpected response message", errors);
}
}
}
}
1 change: 1 addition & 0 deletions Fitbit.Portable/IFitbitClient.cs
Expand Up @@ -33,5 +33,6 @@ public interface IFitbitClient

Task<List<ApiSubscription>> GetSubscriptionsAsync();
Task<ApiSubscription> AddSubscriptionAsync(APICollectionType apiCollectionType, string uniqueSubscriptionId, string subscriberId = default(string));
Task DeleteSubscriptionAsync(APICollectionType collection, string uniqueSubscriptionId, string subscriberId = null);
}
}

0 comments on commit 7c88b7d

Please sign in to comment.