Add support for team membership role

This commit is contained in:
Rapptz
2023-08-25 11:49:03 -04:00
parent 42a1a68662
commit a756df3d5c
4 changed files with 43 additions and 4 deletions

View File

@@ -42,6 +42,7 @@ __all__ = (
'ActivityType',
'NotificationLevel',
'TeamMembershipState',
'TeamMemberRole',
'WebhookType',
'ExpireBehaviour',
'ExpireBehavior',
@@ -521,6 +522,13 @@ class TeamMembershipState(Enum):
accepted = 2
class TeamMemberRole(Enum):
owner = 'owner'
admin = 'admin'
developer = 'developer'
read_only = 'read_only'
class WebhookType(Enum):
incoming = 1
channel_follower = 2

View File

@@ -27,7 +27,7 @@ from __future__ import annotations
from . import utils
from .user import BaseUser
from .asset import Asset
from .enums import TeamMembershipState, try_enum
from .enums import TeamMemberRole, TeamMembershipState, try_enum
from typing import TYPE_CHECKING, Optional, List
@@ -130,14 +130,19 @@ class TeamMember(BaseUser):
The team that the member is from.
membership_state: :class:`TeamMembershipState`
The membership state of the member (e.g. invited or accepted)
role: :class:`TeamMemberRole`
The role of the member within the team.
.. versionadded:: 2.4
"""
__slots__ = ('team', 'membership_state', 'permissions')
__slots__ = ('team', 'membership_state', 'permissions', 'role')
def __init__(self, team: Team, state: ConnectionState, data: TeamMemberPayload) -> None:
self.team: Team = team
self.membership_state: TeamMembershipState = try_enum(TeamMembershipState, data['membership_state'])
self.permissions: List[str] = data['permissions']
self.permissions: List[str] = data.get('permissions', [])
self.role: TeamMemberRole = try_enum(TeamMemberRole, data['role'])
super().__init__(state=state, data=data['user'])
def __repr__(self) -> str:

View File

@@ -24,7 +24,7 @@ DEALINGS IN THE SOFTWARE.
from __future__ import annotations
from typing import TypedDict, List, Optional
from typing import Literal, TypedDict, List, Optional
from .user import PartialUser
from .snowflake import Snowflake
@@ -35,6 +35,7 @@ class TeamMember(TypedDict):
membership_state: int
permissions: List[str]
team_id: Snowflake
role: Literal['owner', 'admin', 'developer', 'read_only']
class Team(TypedDict):