using System; using System.Reactive.Threading.Tasks; namespace Octokit.Reactive { public class ObservableOauthClient : IObservableOauthClient { readonly IGitHubClient _client; public ObservableOauthClient(IGitHubClient client) { Ensure.ArgumentNotNull(client, "client"); _client = client; } /// /// Gets the URL used in the first step of the web flow. The Web application should redirect to this URL. /// /// Parameters to the Oauth web flow login url /// public Uri GetGitHubLoginUrl(OauthLoginRequest request) { return _client.Oauth.GetGitHubLoginUrl(request); } /// /// Makes a request to get an access token using the code returned when GitHub.com redirects back from the URL /// GitHub login url to the application. /// /// /// If the user accepts your request, GitHub redirects back to your site with a temporary code in a code /// parameter as well as the state you provided in the previous step in a state parameter. If the states don’t /// match, the request has been created by a third party and the process should be aborted. Exchange this for /// an access token using this method. /// /// /// public IObservable CreateAccessToken(OauthTokenRequest request) { return _client.Oauth.CreateAccessToken(request).ToObservable(); } } }