Files
octokit.net/Octokit.Reactive/Clients/ObservableRepositoryTrafficClient.cs
Ryan Gribble 600c8657e4 Remove method/members previously deprecated (#1780)
* removes obsolete OranizationsClient.GetAll (replaced with GetAllForUser)

* removes obsolete PullRequestsClient.Comment (replaced with ReviewComment)

* removes obsolete TeamsClient.GetMembership (replaced with GetMembershipDetails)
removes obsolete TeamsClient.AddMembership (replaced with AddOrEditMembership)
removes obsolete TeamsClient.AddMembership (replaced with AddOrEditMembership)
removes obsolete TeamMembership response class (replaced with TeamMembershipDetails)

* removes obsolete RepositoryBranchesClient.GetRequiredStatusChecksContexts (replaced with GetAllRequiredStatusChecksContexts)
removes obsolete RepositoryBranchesClient.GetProtectedBranchTeamRestrictions (replaced with GetAllProtectedBranchTeamRestrictions)
removes obsolete RepositoryBranchesClient.GetProtectedBranchUserRestrictions (replaced with GetAllProtectedBranchUserRestrictions)

* removes obsolete RepositoryTrafficClient.GetReferrers (replaced with GetAllReferrers)
removes obsolete RepositoryTrafficClient.GetPaths (replaced with GetAllPaths)

* removes obsolete constructors from BranchProtectionUpdateSettings and UpdateTeam request models

* removes obsolete Assignee property from NewIssue and IssueUpdate request models (replaced with Assignees)
2018-04-22 09:58:06 +10:00

125 lines
5.5 KiB
C#

using System;
using System.Reactive.Linq;
using System.Reactive.Threading.Tasks;
namespace Octokit.Reactive
{
public class ObservableRepositoryTrafficClient : IObservableRepositoryTrafficClient
{
readonly IRepositoryTrafficClient _client;
public ObservableRepositoryTrafficClient(IGitHubClient client)
{
Ensure.ArgumentNotNull(client, nameof(client));
_client = client.Repository.Traffic;
}
/// <summary>
/// List the top 10 popular contents over the last 14 days
/// </summary>
/// <remarks>https://developer.github.com/v3/repos/traffic/#list-paths</remarks>
/// <param name="repositoryId">The owner of the repository</param>
public IObservable<RepositoryTrafficPath> GetAllPaths(long repositoryId)
{
return _client.GetAllPaths(repositoryId).ToObservable().SelectMany(x => x);
}
/// <summary>
/// List the top 10 popular contents over the last 14 days
/// </summary>
/// <remarks>https://developer.github.com/v3/repos/traffic/#list-paths</remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="name">The name of the repository</param>
public IObservable<RepositoryTrafficPath> GetAllPaths(string owner, string name)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
return _client.GetAllPaths(owner, name).ToObservable().SelectMany(x => x);
}
/// <summary>
/// List the top 10 referrers over the last 14 days
/// </summary>
/// <remarks>https://developer.github.com/v3/repos/traffic/#list-referrers</remarks>
/// <param name="repositoryId">The owner of the repository</param>
public IObservable<RepositoryTrafficReferrer> GetAllReferrers(long repositoryId)
{
return _client.GetAllReferrers(repositoryId).ToObservable().SelectMany(x => x);
}
/// <summary>
/// List the top 10 referrers over the last 14 days
/// </summary>
/// <remarks>https://developer.github.com/v3/repos/traffic/#list-referrers</remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="name">The name of the repository</param>
public IObservable<RepositoryTrafficReferrer> GetAllReferrers(string owner, string name)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
return _client.GetAllReferrers(owner, name).ToObservable().SelectMany(x => x);
}
/// <summary>
/// Get the total number of clones and breakdown per day or week for the last 14 days
/// </summary>
/// <remarks>https://developer.github.com/v3/repos/traffic/#clones</remarks>
/// <param name="repositoryId">The owner of the repository</param>
/// <param name="per">Breakdown per day or week</param>
public IObservable<RepositoryTrafficCloneSummary> GetClones(long repositoryId, RepositoryTrafficRequest per)
{
Ensure.ArgumentNotNull(per, nameof(per));
return _client.GetClones(repositoryId, per).ToObservable();
}
/// <summary>
/// Get the total number of clones and breakdown per day or week for the last 14 days
/// </summary>
/// <remarks>https://developer.github.com/v3/repos/traffic/#clones</remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="name">The name of the repository</param>
/// <param name="per">Breakdown per day or week</param>
public IObservable<RepositoryTrafficCloneSummary> GetClones(string owner, string name, RepositoryTrafficRequest per)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
Ensure.ArgumentNotNull(per, nameof(per));
return _client.GetClones(owner, name, per).ToObservable();
}
/// <summary>
/// Get the total number of views and breakdown per day or week for the last 14 days
/// </summary>
/// <remarks>https://developer.github.com/v3/repos/traffic/#views</remarks>
/// <param name="repositoryId">The owner of the repository</param>
/// <param name="per">Breakdown per day or week</param>
public IObservable<RepositoryTrafficViewSummary> GetViews(long repositoryId, RepositoryTrafficRequest per)
{
Ensure.ArgumentNotNull(per, nameof(per));
return _client.GetViews(repositoryId, per).ToObservable();
}
/// <summary>
/// Get the total number of views and breakdown per day or week for the last 14 days
/// </summary>
/// <remarks>https://developer.github.com/v3/repos/traffic/#views</remarks>
/// <param name="owner">The owner of the repository</param>
/// <param name="name">The name of the repository</param>
/// <param name="per">Breakdown per day or week</param>
public IObservable<RepositoryTrafficViewSummary> GetViews(string owner, string name, RepositoryTrafficRequest per)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
Ensure.ArgumentNotNull(per, nameof(per));
return _client.GetViews(owner, name, per).ToObservable();
}
}
}