using System;
using System.Reactive.Linq;
using System.Reactive.Threading.Tasks;
namespace Octokit.Reactive
{
///
/// A client for GitHub's meta APIs.
///
///
/// See the Meta API documentation for more details.
///
public class ObservableMetaClient : IObservableMetaClient
{
private readonly IMetaClient _client;
public ObservableMetaClient(IGitHubClient client)
{
Ensure.ArgumentNotNull(client, nameof(client));
PublicKeys = new ObservablePublicKeysClient(client);
_client = client.Meta;
}
///
/// Returns a client to manage get public keys for validating request signatures.
///
public IObservablePublicKeysClient PublicKeys { get; private set; }
///
/// Retrieves information about GitHub.com, the service or a GitHub Enterprise installation.
///
/// Thrown when a general API error occurs.
/// An containing metadata about the GitHub instance.
public IObservable GetMetadata()
{
return _client.GetMetadata().ToObservable();
}
}
}