using System.Collections.Generic;
using System.Threading.Tasks;
namespace Octokit
{
///
/// A client for GitHub's Activity Events API.
///
///
/// See the Activity Events API documentation for more information
///
public class EventsClient : ApiClient, IEventsClient
{
///
/// Instantiates a new GitHub Issue Events API client.
///
/// An API connection
public EventsClient(IApiConnection apiConnection)
: base(apiConnection)
{
}
///
/// Gets all the public events
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events
///
[ManualRoute("GET", "/events")]
public Task> GetAll()
{
return GetAll(ApiOptions.None);
}
///
/// Gets all the public events
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events
///
/// Options for changing the API response
/// All the public s for the particular user.
[ManualRoute("GET", "/events")]
public Task> GetAll(ApiOptions options)
{
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.Events(), options);
}
///
/// Gets all the events for a given repository
///
///
/// https://developer.github.com/v3/activity/events/#list-repository-events
///
/// The owner of the repository
/// The name of the repository
[ManualRoute("GET", "/repos/{owner}/{repo}/events")]
public Task> GetAllForRepository(string owner, string name)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
return GetAllForRepository(owner, name, ApiOptions.None);
}
///
/// Gets all the events for a given repository
///
///
/// http://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository
///
/// The Id of the repository
[ManualRoute("GET", "/repositories/{id}/events")]
public Task> GetAllForRepository(long repositoryId)
{
return GetAllForRepository(repositoryId, ApiOptions.None);
}
///
/// Gets all the events for a given repository
///
///
/// https://developer.github.com/v3/activity/events/#list-repository-events
///
/// The owner of the repository
/// The name of the repository
/// Options for changing the API response
[ManualRoute("GET", "/repos/{owner}/{repo}/events")]
public Task> GetAllForRepository(string owner, string name, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.Events(owner, name), options);
}
///
/// Gets all the events for a given repository
///
///
/// http://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository
///
/// The Id of the repository
/// Options for changing the API response
[ManualRoute("GET", "/repositories/{id}/events")]
public Task> GetAllForRepository(long repositoryId, ApiOptions options)
{
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.Events(repositoryId), options);
}
///
/// Gets all the event issues for a given repository
///
///
/// http://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository
///
/// The owner of the repository
/// The name of the repository
[ManualRoute("GET", "/repos/{owner}/{repo}/issues/events")]
public Task> GetAllIssuesForRepository(string owner, string name)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
return GetAllIssuesForRepository(owner, name, ApiOptions.None);
}
///
/// Gets all the issue events for a given repository
///
///
/// http://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository
///
/// The Id of the repository
[ManualRoute("GET", "/repositories/{id}/issues/events")]
public Task> GetAllIssuesForRepository(long repositoryId)
{
return GetAllIssuesForRepository(repositoryId, ApiOptions.None);
}
///
/// Gets all the event issues for a given repository
///
///
/// http://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository
///
/// The owner of the repository
/// The name of the repository
/// Options for changing the API response
[ManualRoute("GET", "/repos/{owner}/{repo}/issues/events")]
public Task> GetAllIssuesForRepository(string owner, string name, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.IssuesEvents(owner, name), options);
}
///
/// Gets all the issue events for a given repository
///
///
/// http://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository
///
/// The Id of the repository
/// Options for changing the API response
[ManualRoute("GET", "/repositories/{id}/issues/events")]
public Task> GetAllIssuesForRepository(long repositoryId, ApiOptions options)
{
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.IssuesEvents(repositoryId), options);
}
///
/// Gets all the events for a given repository network
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events-for-a-network-of-repositories
///
/// The owner of the repository
/// The name of the repository
[ManualRoute("GET", "/networks/{owner}/{name}/events")]
public Task> GetAllForRepositoryNetwork(string owner, string name)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
return GetAllForRepositoryNetwork(owner, name, ApiOptions.None);
}
///
/// Gets all the events for a given repository network
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events-for-a-network-of-repositories
///
/// The owner of the repository
/// The name of the repository
/// Options for changing the API response
[ManualRoute("GET", "/networks/{owner}/{name}/events")]
public Task> GetAllForRepositoryNetwork(string owner, string name, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.NetworkEvents(owner, name), options);
}
///
/// Gets all the events for a given organization
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events-for-an-organization
///
/// The name of the organization
[ManualRoute("GET", "/orgs/{org}/events")]
public Task> GetAllForOrganization(string organization)
{
Ensure.ArgumentNotNullOrEmptyString(organization, nameof(organization));
return GetAllForOrganization(organization, ApiOptions.None);
}
///
/// Gets all the events for a given organization
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events-for-an-organization
///
/// The name of the organization
/// Options for changing the API response
[ManualRoute("GET", "/orgs/{org}/events")]
public Task> GetAllForOrganization(string organization, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(organization, nameof(organization));
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.OrganizationEvents(organization), options);
}
///
/// Gets all the events that have been received by a given user.
///
///
/// http://developer.github.com/v3/activity/events/#list-events-that-a-user-has-received
///
/// The login of the user
[ManualRoute("GET", "/users/{username}/received_events")]
public Task> GetAllUserReceived(string user)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
return GetAllUserReceived(user, ApiOptions.None);
}
///
/// Gets all the events that have been received by a given user.
///
///
/// http://developer.github.com/v3/activity/events/#list-events-that-a-user-has-received
///
/// The login of the user
/// Options for changing the API response
[ManualRoute("GET", "/users/{username}/received_events")]
public Task> GetAllUserReceived(string user, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.ReceivedEvents(user), options);
}
///
/// Gets all the events that have been received by a given user.
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events-that-a-user-has-received
///
/// The login of the user
[ManualRoute("GET", "/users/{username}/received_events/public")]
public Task> GetAllUserReceivedPublic(string user)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
return GetAllUserReceivedPublic(user, ApiOptions.None);
}
///
/// Gets all the events that have been received by a given user.
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events-that-a-user-has-received
///
/// The login of the user
/// Options for changing the API response
[ManualRoute("GET", "/users/{username}/received_events/public")]
public Task> GetAllUserReceivedPublic(string user, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.ReceivedEvents(user, true), options);
}
///
/// Gets all the events that have been performed by a given user.
///
///
/// http://developer.github.com/v3/activity/events/#list-events-performed-by-a-user
///
/// The login of the user
[ManualRoute("GET", "/users/{username}/events")]
public Task> GetAllUserPerformed(string user)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
return GetAllUserPerformed(user, ApiOptions.None);
}
///
/// Gets all the events that have been performed by a given user.
///
///
/// http://developer.github.com/v3/activity/events/#list-events-performed-by-a-user
///
/// The login of the user
/// Options for changing the API response
[ManualRoute("GET", "/users/{username}/events")]
public Task> GetAllUserPerformed(string user, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.PerformedEvents(user), options);
}
///
/// Gets all the public events that have been performed by a given user.
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events-performed-by-a-user
///
/// The login of the user
[ManualRoute("GET", "/users/{username}/events/public")]
public Task> GetAllUserPerformedPublic(string user)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
return GetAllUserPerformedPublic(user, ApiOptions.None);
}
///
/// Gets all the public events that have been performed by a given user.
///
///
/// http://developer.github.com/v3/activity/events/#list-public-events-performed-by-a-user
///
/// The login of the user
/// Options for changing the API response
[ManualRoute("GET", "/users/{username}/events/public")]
public Task> GetAllUserPerformedPublic(string user, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.PerformedEvents(user, true), options);
}
///
/// Gets all the events that are associated with an organization.
///
///
/// http://developer.github.com/v3/activity/events/#list-events-for-an-organization
///
/// The login of the user
/// The name of the organization
[ManualRoute("GET", "/users/{username}/events/orgs/{org}")]
public Task> GetAllForAnOrganization(string user, string organization)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
Ensure.ArgumentNotNullOrEmptyString(organization, nameof(organization));
return GetAllForAnOrganization(user, organization, ApiOptions.None);
}
///
/// Gets all the events that are associated with an organization.
///
///
/// http://developer.github.com/v3/activity/events/#list-events-for-an-organization
///
/// The login of the user
/// The name of the organization
/// Options for changing the API response
[ManualRoute("GET", "/users/{username}/events/orgs/{org}")]
public Task> GetAllForAnOrganization(string user, string organization, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(user, nameof(user));
Ensure.ArgumentNotNullOrEmptyString(organization, nameof(organization));
Ensure.ArgumentNotNull(options, nameof(options));
return ApiConnection.GetAll(ApiUrls.OrganizationEvents(user, organization), options);
}
}
}