@@ -61,6 +61,17 @@ def _list(self, url, **params):
6161 if "next" not in metadata or metadata .get ("count" , 0 ) < metadata .get ("limit" , 0 ):
6262 break
6363
64+ def _single (self , url , ** params ):
65+ # Resolve parameters
66+ url = self .BASE_URL + url
67+ headers = { "Authorization" : "Bearer {}" .format (self ._token ) }
68+
69+ # Return a single result
70+ response = requests .get (url , params = params , headers = headers )
71+ response .raise_for_status ()
72+ data = response .json ()
73+ yield data
74+
6475 def get_accounts (self ):
6576 """
6677 Retrieve existing accounts as a dictionary.
@@ -150,6 +161,30 @@ def get_team_worklogs(self, date_from, date_to, teamid):
150161 params = { "from" : date_from , "to" : date_to , "limit" : self .MAX_RESULTS }
151162 return self ._list (url , ** params )
152163
164+ def get_team_members (self , teamid ):
165+ """
166+ Returns members for particular ```team```.
167+ """
168+
169+ url = f"/teams/{ teamid } /members"
170+ return self ._list (url )
171+
172+ def get_team_memberships (self , membershipid ):
173+ """
174+ Returns members for particular ```team membership id```.
175+ """
176+
177+ url = f"/team-memberships/{ membershipid } "
178+ return self ._single (url )
179+
180+ def get_account_team_membership (self , teamid , accountid ):
181+ """
182+ Returns the active team membership of a specific ```accountid``` in a specific ```teamid```.
183+ """
184+
185+ url = f"/teams/{ teamid } /members/{ accountid } "
186+ return self ._single (url )
187+
153188 def get_user_schedule (self , date_from , date_to , user = None ):
154189 """
155190 Returns user schedule inside ```date_from``` and ```date_to```,
0 commit comments