stubbed the observable clients

This commit is contained in:
Brendan Forster
2014-07-08 11:17:55 +09:30
parent 5a24bbb9f8
commit d9cb1a9a57
7 changed files with 119 additions and 0 deletions
@@ -0,0 +1,31 @@
using System;
namespace Octokit.Reactive
{
/// <summary>
/// A client for GitHub's User Keys API.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/users/keys/">User Keys API documentation</a> for more information.
/// </remarks>
public interface IObservableUserKeysClient
{
/// <summary>
/// Gets all public keys for the authenticated user.
/// </summary>
/// <remarks>
/// https://developer.github.com/v3/users/keys/#list-your-public-keys
/// </remarks>
/// <returns>The <see cref="PublicKey"/>s for the authenticated user.</returns>
IObservable<PublicKey> GetAll();
/// <summary>
/// Gets all verified public keys for a user.
/// </summary>
/// <remarks>
/// https://developer.github.com/v3/users/keys/#list-public-keys-for-a-user
/// </remarks>
/// <returns>The <see cref="PublicKey"/>s for the user.</returns>
IObservable<PublicKey> GetAll(string userName);
}
}
@@ -43,5 +43,13 @@ namespace Octokit.Reactive
/// See the <a href="http://developer.github.com/v3/users/emails/">Emails API documentation</a> for more information.
///</remarks>
IObservableUserEmailsClient Email { get; }
/// <summary>
/// A client for GitHub's User Keys API
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/users/keys/">Keys API documentation</a> for more information.
///</remarks>
IObservableUserKeysClient Keys { get; }
}
}
@@ -0,0 +1,28 @@
using System;
using System.Reactive.Linq;
using System.Reactive.Threading.Tasks;
namespace Octokit.Reactive
{
public class ObservableUserKeysClient : IObservableUserKeysClient
{
readonly IUserKeysClient _client;
public ObservableUserKeysClient(IGitHubClient client)
{
Ensure.ArgumentNotNull(client, "client");
_client = client.User.Keys;
}
public IObservable<PublicKey> GetAll()
{
return _client.GetAll().ToObservable().SelectMany(k => k);
}
public IObservable<PublicKey> GetAll(string userName)
{
return _client.GetAll(userName).ToObservable().SelectMany(k => k);
}
}
}
@@ -15,6 +15,7 @@ namespace Octokit.Reactive
Followers = new ObservableFollowersClient(client);
Email = new ObservableUserEmailsClient(client);
Keys = new ObservableUserKeysClient(client);
}
/// <summary>
@@ -66,5 +67,13 @@ namespace Octokit.Reactive
/// See the <a href="http://developer.github.com/v3/users/emails/">Emails API documentation</a> for more information.
///</remarks>
public IObservableUserEmailsClient Email { get; private set; }
/// <summary>
/// A client for GitHub's User Keys API
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/users/keys/">Keys API documentation</a> for more information.
///</remarks>
public IObservableUserKeysClient Keys { get; private set; }
}
}
+2
View File
@@ -76,6 +76,7 @@
<Compile Include="Clients\IObservableOauthClient.cs" />
<Compile Include="Clients\IObservableRepositoryCommitsClients.cs" />
<Compile Include="Clients\IObservableRepositoryDeployKeysClient.cs" />
<Compile Include="Clients\IObservableUserKeysClient.cs" />
<Compile Include="Clients\ObservableRepositoryDeployKeysClient.cs" />
<Compile Include="Clients\ObservableOauthClient.cs" />
<Compile Include="Clients\ObservableRepositoryCommentsClient.cs" />
@@ -144,6 +145,7 @@
<Compile Include="Clients\ObservableTreesClient.cs" />
<Compile Include="Clients\ObservableFollowersClient.cs" />
<Compile Include="Clients\ObservableUserEmailsClient.cs" />
<Compile Include="Clients\ObservableUserKeysClient.cs" />
<Compile Include="Clients\ObservableUsersClient.cs" />
<Compile Include="Clients\IObservableAssigneesClient.cs" />
<Compile Include="Clients\IObservableNotificationsClient.cs" />
+21
View File
@@ -3,9 +3,30 @@ using System.Threading.Tasks;
namespace Octokit
{
/// <summary>
/// A client for GitHub's User Keys API.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/users/keys/">User Keys API documentation</a> for more information.
/// </remarks>
public interface IUserKeysClient
{
/// <summary>
/// Gets all public keys for the authenticated user.
/// </summary>
/// <remarks>
/// https://developer.github.com/v3/users/keys/#list-your-public-keys
/// </remarks>
/// <returns>The <see cref="PublicKey"/>s for the authenticated user.</returns>
Task<IReadOnlyList<PublicKey>> GetAll();
/// <summary>
/// Gets all verified public keys for a user.
/// </summary>
/// <remarks>
/// https://developer.github.com/v3/users/keys/#list-public-keys-for-a-user
/// </remarks>
/// <returns>The <see cref="PublicKey"/>s for the user.</returns>
Task<IReadOnlyList<PublicKey>> GetAll(string userName);
}
}
+20
View File
@@ -3,6 +3,12 @@ using System.Threading.Tasks;
namespace Octokit
{
/// <summary>
/// A client for GitHub's User Keys API.
/// </summary>
/// <remarks>
/// See the <a href="http://developer.github.com/v3/users/keys/">User Keys API documentation</a> for more information.
/// </remarks>
public class UserKeysClient : ApiClient, IUserKeysClient
{
public UserKeysClient(IApiConnection apiConnection)
@@ -10,11 +16,25 @@ namespace Octokit
{
}
/// <summary>
/// Gets all public keys for the authenticated user.
/// </summary>
/// <remarks>
/// https://developer.github.com/v3/users/keys/#list-your-public-keys
/// </remarks>
/// <returns>The <see cref="PublicKey"/>s for the authenticated user.</returns>
public Task<IReadOnlyList<PublicKey>> GetAll()
{
return null;
}
/// <summary>
/// Gets all verified public keys for a user.
/// </summary>
/// <remarks>
/// https://developer.github.com/v3/users/keys/#list-public-keys-for-a-user
/// </remarks>
/// <returns>The <see cref="PublicKey"/>s for the user.</returns>
public Task<IReadOnlyList<PublicKey>> GetAll(string userName)
{
return null;