Implement Team Membership changes (#1670)

* Fixup TeamContext helper name

* Implement overload for GetAllMembers to take request parameter

* Update tests

* Implement Obersvable client changes

* Observable tests

* Implement AddOrEditMembership function returning a new response model, and obsolete the old AddMembership function returning an enum

* Implement GetMembershipDetails function returning new TeamMembershipDetails response model, and obsolete the old GetMembership function returning an enum

* Clarify that an exception is thrown when not a member

* Add integration tests for AddOrEditMembership and GetMembershipDetails

* fixup exception test for observable client

* Update wording of obsolete message
This commit is contained in:
Ryan Gribble
2017-09-26 21:37:43 +10:00
committed by GitHub
parent ac5279c632
commit da0c7a5785
15 changed files with 813 additions and 55 deletions
@@ -0,0 +1,55 @@
using System.Diagnostics;
using System.Globalization;
using Octokit.Internal;
namespace Octokit
{
/// <summary>
/// Used to filter requests for team members
/// </summary>
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class TeamMembersRequest : RequestParameters
{
public TeamMembersRequest(TeamRoleFilter role)
{
Role = role;
}
/// <summary>
/// Which membership roles to get
/// </summary>
public TeamRoleFilter Role { get; private set; }
internal string DebuggerDisplay
{
get
{
return string.Format(CultureInfo.InvariantCulture, "Role {0} ", Role);
}
}
}
/// <summary>
/// Filtering by Roles within a Team
/// </summary>
public enum TeamRoleFilter
{
/// <summary>
/// Regular Team Member
/// </summary>
[Parameter(Value = "member")]
Member,
/// <summary>
/// Team Maintainer
/// </summary>
[Parameter(Value = "maintainer")]
Maintainer,
/// <summary>
/// All Roles
/// </summary>
[Parameter(Value = "all")]
All
}
}
@@ -0,0 +1,31 @@
using System.Diagnostics;
using System.Globalization;
using Octokit.Internal;
namespace Octokit
{
/// <summary>
/// Used to filter requests for team members
/// </summary>
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class UpdateTeamMembership
{
public UpdateTeamMembership(TeamRole role)
{
Role = role;
}
/// <summary>
/// Which membership roles to get
/// </summary>
public TeamRole Role { get; private set; }
internal string DebuggerDisplay
{
get
{
return string.Format(CultureInfo.InvariantCulture, "Role {0}", Role);
}
}
}
}