diff --git a/Octokit.Reactive/Clients/ObservableReleasesClient.cs b/Octokit.Reactive/Clients/ObservableReleasesClient.cs index edb5f642..004ff5af 100644 --- a/Octokit.Reactive/Clients/ObservableReleasesClient.cs +++ b/Octokit.Reactive/Clients/ObservableReleasesClient.cs @@ -30,6 +30,9 @@ namespace Octokit.Reactive /// The list of s for the specified repository. public IObservable GetAll(string owner, string name) { + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(name, "name"); + return _connection.GetAndFlattenAllPages(ApiUrls.Releases(owner, name)); } @@ -46,7 +49,11 @@ namespace Octokit.Reactive /// The specified by the id public IObservable Get(string owner, string name, int number) { - throw new NotImplementedException(); + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(name, "name"); + Ensure.ArgumentNotNull(number, "number"); + + return _client.Get(owner, name, number).ToObservable(); } /// @@ -62,6 +69,10 @@ namespace Octokit.Reactive /// The created . public IObservable CreateRelease(string owner, string name, ReleaseUpdate data) { + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(name, "name"); + Ensure.ArgumentNotNull(data, "data"); + return _client.CreateRelease(owner, name, data).ToObservable(); } @@ -78,7 +89,11 @@ namespace Octokit.Reactive /// The updated . public IObservable EditRelease(string owner, string name, ReleaseUpdate data) { - throw new NotImplementedException(); + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(name, "name"); + Ensure.ArgumentNotNull(data, "data"); + + return _client.EditRelease(owner, name, data).ToObservable(); } /// @@ -94,7 +109,11 @@ namespace Octokit.Reactive /// public IObservable DeleteRelease(string owner, string name, int number) { - throw new NotImplementedException(); + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(name, "name"); + Ensure.ArgumentNotNull(number, "number"); + + return _client.DeleteRelease(owner, name, number).ToObservable(); } /// @@ -110,7 +129,11 @@ namespace Octokit.Reactive /// The list of for the specified release of the specified repository. public IObservable GetAssets(string owner, string name, int number) { - throw new NotImplementedException(); + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(name, "name"); + Ensure.ArgumentNotNull(number, "number"); + + return _connection.GetAndFlattenAllPages(ApiUrls.Assets(owner, name, number)); } /// @@ -125,7 +148,12 @@ namespace Octokit.Reactive /// The created . public IObservable GetAsset(string owner, string name, int releaseId, int assetId) { - throw new NotImplementedException(); + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(name, "name"); + Ensure.ArgumentNotNull(releaseId, "releaseId"); + Ensure.ArgumentNotNull(assetId, "assetId"); + + return _client.GetAsset(owner, name, releaseId, assetId).ToObservable(); } /// @@ -141,6 +169,9 @@ namespace Octokit.Reactive /// The specified by the asset id. public IObservable UploadAsset(Release release, ReleaseAssetUpload data) { + Ensure.ArgumentNotNull(release, "release"); + Ensure.ArgumentNotNull(data, "data"); + return _client.UploadAsset(release, data).ToObservable(); } @@ -158,7 +189,13 @@ namespace Octokit.Reactive /// The edited . public IObservable EditAsset(string owner, string name, int releaseId, int assetId, ReleaseAssetUpdate data) { - throw new NotImplementedException(); + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(name, "name"); + Ensure.ArgumentNotNull(releaseId, "releaseId"); + Ensure.ArgumentNotNull(assetId, "assetId"); + Ensure.ArgumentNotNull(data, "data"); + + return _client.EditAsset(owner, name, releaseId, assetId, data).ToObservable(); } /// @@ -173,7 +210,11 @@ namespace Octokit.Reactive /// public IObservable DeleteAsset(string owner, string name, int number) { - throw new NotImplementedException(); + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(name, "name"); + Ensure.ArgumentNotNull(number, "number"); + + return _client.DeleteAsset(owner, name, number).ToObservable(); } } }