using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Octokit { /// /// A client for GitHub's User Emails API. /// /// /// See the User Emails API documentation for more information. /// public class UserEmailsClient : ApiClient, IUserEmailsClient { /// /// Instantiates a new GitHub User Emails API client. /// /// An API connection public UserEmailsClient(IApiConnection apiConnection) : base(apiConnection) { } /// /// Gets all email addresses for the authenticated user. /// /// /// http://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user /// /// The es for the authenticated user. public Task> GetAll() { return GetAll(ApiOptions.None); } /// /// Gets all email addresses for the authenticated user. /// /// /// http://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user /// /// The es for the authenticated user. public Task> GetAll(ApiOptions options) { Ensure.ArgumentNotNull(options, "options"); return ApiConnection.GetAll(ApiUrls.Emails(), options); } /// /// Adds email addresses for the authenticated user. /// /// /// http://developer.github.com/v3/users/emails/#add-email-addresses /// /// The email addresses to add. /// Returns the added es. public Task> Add(params string[] emailAddresses) { Ensure.ArgumentNotNull(emailAddresses, "emailAddresses"); if (emailAddresses.Any(string.IsNullOrWhiteSpace)) throw new ArgumentException("Cannot contain null, empty or whitespace values", "emailAddresses"); return ApiConnection.Post>(ApiUrls.Emails(), emailAddresses); } /// /// Deletes email addresses for the authenticated user. /// /// /// http://developer.github.com/v3/users/emails/#delete-email-addresses /// /// The email addresses to delete. /// Returns the added es. public Task Delete(params string[] emailAddresses) { Ensure.ArgumentNotNull(emailAddresses, "emailAddresses"); if (emailAddresses.Any(string.IsNullOrWhiteSpace)) throw new ArgumentException("Cannot contain null, empty or whitespace values", "emailAddresses"); return ApiConnection.Delete(ApiUrls.Emails(), emailAddresses); } } }