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); } } }