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