6
6
)
7
7
from typing import Set , Iterator , Any
8
8
from pydantic import (
9
+ ConfigDict ,
9
10
Field ,
10
11
field_validator ,
11
12
model_serializer ,
@@ -78,7 +79,12 @@ class Member(_CamelCaseMixin):
78
79
default_role : Optional [Role ] = Field (default = None )
79
80
user_group_ids : Set [str ] = Field (default = set ())
80
81
client : Client
81
- _current_user_id : str = PrivateAttr ()
82
+ _current_user_id : str
83
+
84
+ def __init__ (self , ** data ):
85
+ """set private attribute"""
86
+ super ().__init__ (** data )
87
+ self ._current_user_id = self .client .get_user ().uid
82
88
83
89
@field_validator ("client" , mode = "before" )
84
90
@classmethod
@@ -91,9 +97,8 @@ def experimental(cls, v: Client):
91
97
92
98
@model_validator (mode = "before" )
93
99
def current_user (data : Any ) -> Any :
94
- data ["_current_user_id" ] = data ["client" ].get_user .uid
95
100
if "id" not in data :
96
- data ["id" ] = data ["_current_user_id" ]
101
+ data ["id" ] = data ["client" ]. get_user (). uid
97
102
return data
98
103
99
104
def get (self ) -> "Member" :
@@ -250,7 +255,7 @@ def delete(self) -> bool:
250
255
251
256
Raises:
252
257
ResourceNotFoundError: If the deletion of the member fails due to not existing
253
- ValueError: If the member id is current users id.
258
+ ValueError: If the member id is current member id.
254
259
"""
255
260
256
261
query = """
@@ -262,7 +267,7 @@ def delete(self) -> bool:
262
267
}
263
268
"""
264
269
265
- if self .id == self .client . get_user (). uid :
270
+ if self .id == self ._current_user_id :
266
271
raise ValueError ("Unable to delete self" )
267
272
268
273
params = {"id" : self .id }
@@ -276,13 +281,13 @@ def delete(self) -> bool:
276
281
277
282
def _get_project_memberships (self , user_id : str ) -> Set [ProjectMembership ]:
278
283
"""
279
- Retrieves a set of project members from the given user_id.
284
+ Retrieves a set of project membership objects from the given user_id.
280
285
281
286
Args:
282
287
user_id (str): User id you are getting project memberships on.
283
288
284
289
Returns:
285
- set: A set of project members .
290
+ set: A set of project memberships .
286
291
"""
287
292
query = """
288
293
query GetMemberReworkPyApi($userId: ID!) {
@@ -417,3 +422,12 @@ def get_members(
417
422
yield Member (client = self .client , ** member )
418
423
419
424
previous_batch += batch_size
425
+
426
+
427
+ if __name__ == "__main__" :
428
+ api_key = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJjbG9vcmRpaGUwMDkyMDcza2Nvcm5jajdnIiwib3JnYW5pemF0aW9uSWQiOiJjbG9vcmRpZ3cwMDkxMDcza2M2cG9oeWFiIiwiYXBpS2V5SWQiOiJjbTIzbDEyZncwYjN2MDd4ZDlqNmthMTBjIiwic2VjcmV0IjoiZWNlZTQ1YzQ1YmU1NTlkOGNkNDgxOTJkMDgxZGIyYjMiLCJpYXQiOjE3Mjg1ODE4OTUsImV4cCI6MjM1OTczMzg5NX0.xm3Yvg0Zub0HKJzSFf66iClaAvBxJpTBo4dxiruW7SA"
429
+ client = Client (api_key )
430
+ client .enable_experimental = True
431
+ member = Member (client = client )
432
+ print (member )
433
+ print (member .delete ())
0 commit comments