//-----------------------------------------------------------------------
//
// Copyright 2010 - Present Stuart Grassie
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//----------------------------------------------------------------------
namespace csharp_github_api
{
using LoggingExtensions.Logging;
using Resource;
using RestSharp;
///
/// Access the Github.com API.
///
public partial class GithubRestApiClient : ApiBase
{
private readonly IRestClient _innerRestClient;
///
/// Default Constructor.
///
/// The base URL for accessing GitHub's API.
public GithubRestApiClient(string baseUrl = "https://api.github.com")
{
BaseUrl = baseUrl;
_innerRestClient = new RestClient(BaseUrl);
Log.InitializeWith();
RequestFactory = new RestRequestFactory();
}
public GithubRestApiClient WithLogger() where TLogger : ILog, new()
{
Log.InitializeWith();
this.Log().Info("Logging enabled with {0}.", typeof(TLogger).FullName);
return this;
}
///
/// Add authentication to the client.
///
/// The to use for authentication.
public GithubRestApiClient WithAuthentication(IAuthenticator authenticator)
{
this.Log().Info("Authentication enabled with {0}", authenticator.GetType().FullName);
_innerRestClient.Authenticator = authenticator;
return this;
}
public IRestRequestFactory RequestFactory { get; private set; }
}
}