using System.Threading.Tasks; using System.Collections.Generic; namespace Octokit { /// /// A client for GitHub's Issue Events API. /// /// /// See the Issue Events API documentation for more information. /// public class IssuesEventsClient : ApiClient, IIssuesEventsClient { public IssuesEventsClient(IApiConnection apiConnection) : base(apiConnection) { } /// /// Gets all events for the issue. /// /// /// http://developer.github.com/v3/issues/events/#list-events-for-an-issue /// /// The owner of the repository /// The name of the repository /// The issue number [ManualRoute("GET", "/repos/{owner}/{repo}/issues/{issue_number}/events")] public Task> GetAllForIssue(string owner, string name, int issueNumber) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); return GetAllForIssue(owner, name, issueNumber, ApiOptions.None); } /// /// Gets all events for the issue. /// /// /// http://developer.github.com/v3/issues/events/#list-events-for-an-issue /// /// The Id of the repository /// The issue number [ManualRoute("GET", "/repositories/{id}/issues/{number}/events")] public Task> GetAllForIssue(long repositoryId, int issueNumber) { return GetAllForIssue(repositoryId, issueNumber, ApiOptions.None); } /// /// Gets all events for the issue. /// /// /// http://developer.github.com/v3/issues/events/#list-events-for-an-issue /// /// The owner of the repository /// The name of the repository /// The issue number /// Options for changing the API response [ManualRoute("GET", "/repos/{owner}/{repo}/issues/{issue_number}/events")] public Task> GetAllForIssue(string owner, string name, int number, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); Ensure.ArgumentNotNull(options, nameof(options)); return ApiConnection.GetAll(ApiUrls.IssuesEvents(owner, name, number), null, options); } /// /// Gets all events for the issue. /// /// /// http://developer.github.com/v3/issues/events/#list-events-for-an-issue /// /// The Id of the repository /// The issue number /// Options for changing the API response [ManualRoute("GET", "/repositories/{id}/issues/{number}/events")] public Task> GetAllForIssue(long repositoryId, int issueNumber, ApiOptions options) { Ensure.ArgumentNotNull(options, nameof(options)); return ApiConnection.GetAll(ApiUrls.IssuesEvents(repositoryId, issueNumber), null, options); } /// /// Gets all events for the repository. /// /// /// http://developer.github.com/v3/issues/events/#list-events-for-a-repository /// /// The owner of the repository /// The name of the repository [ManualRoute("GET", "/repos/{owner}/{repo}/issues/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 events for the repository. /// /// /// http://developer.github.com/v3/issues/events/#list-events-for-a-repository /// /// The Id of the repository [ManualRoute("GET", "/repositories/{id}/issues/events")] public Task> GetAllForRepository(long repositoryId) { return GetAllForRepository(repositoryId, ApiOptions.None); } /// /// Gets all events for the repository. /// /// /// http://developer.github.com/v3/issues/events/#list-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> 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.IssuesEvents(owner, name), null, options); } /// /// Gets all events for the repository. /// /// /// http://developer.github.com/v3/issues/events/#list-events-for-a-repository /// /// The Id of the repository /// Options for changing the API response [ManualRoute("GET", "/repositories/{id}/issues/events")] public Task> GetAllForRepository(long repositoryId, ApiOptions options) { Ensure.ArgumentNotNull(options, nameof(options)); return ApiConnection.GetAll(ApiUrls.IssuesEvents(repositoryId), null, options); } /// /// Gets a single event /// /// /// http://developer.github.com/v3/issues/events/#get-a-single-event /// /// The owner of the repository /// The name of the repository /// The event id [ManualRoute("GET", "/repos/{owner}/{repo}/issues/events/{event_id}")] public Task Get(string owner, string name, long eventId) { Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner)); Ensure.ArgumentNotNullOrEmptyString(name, nameof(name)); return ApiConnection.Get(ApiUrls.IssuesEvent(owner, name, eventId), null); } /// /// Gets a single event /// /// /// http://developer.github.com/v3/issues/events/#get-a-single-event /// /// The Id of the repository /// The event id [ManualRoute("GET", "/repositories/{id}/issues/events/{event_id}")] public Task Get(long repositoryId, long eventId) { return ApiConnection.Get(ApiUrls.IssuesEvent(repositoryId, eventId), null); } } }