1
1
from .endpoint import Endpoint
2
2
from .exceptions import MissingRequiredFieldError
3
+ from ...models .exceptions import UnpopulatedPropertyError
3
4
from .. import RequestFactory , GroupItem , UserItem , PaginationItem
4
5
import logging
5
6
@@ -47,7 +48,31 @@ def delete(self, group_id):
47
48
48
49
# Removes 1 user from 1 group
49
50
def remove_user (self , group_item , user_id ):
50
- user_set = group_item .users
51
+ self ._remove_user (group_item , user_id )
52
+ try :
53
+ user_set = group_item .users
54
+ for user in user_set :
55
+ if user .id == user_id :
56
+ user_set .remove (user )
57
+ break
58
+ except UnpopulatedPropertyError :
59
+ # If we aren't populated, do nothing to the user list
60
+ pass
61
+ logger .info ('Removed user (id: {0}) from group (ID: {1})' .format (user_id , group_item .id ))
62
+
63
+ # Adds 1 user to 1 group
64
+ def add_user (self , group_item , user_id ):
65
+ new_user = self ._add_user (group_item , user_id )
66
+ try :
67
+ user_set = group_item .users
68
+ user_set .add (new_user )
69
+ group_item ._set_users (user_set )
70
+ except UnpopulatedPropertyError :
71
+ # If we aren't populated, do nothing to the user list
72
+ pass
73
+ logger .info ('Added user (id: {0}) to group (ID: {1})' .format (user_id , group_item .id ))
74
+
75
+ def _remove_user (self , group_item , user_id ):
51
76
if not group_item .id :
52
77
error = "Group item missing ID."
53
78
raise MissingRequiredFieldError (error )
@@ -56,15 +81,8 @@ def remove_user(self, group_item, user_id):
56
81
raise ValueError (error )
57
82
url = "{0}/{1}/users/{2}" .format (self .baseurl , group_item .id , user_id )
58
83
self .delete_request (url )
59
- for user in user_set :
60
- if user .id == user_id :
61
- user_set .remove (user )
62
- break
63
- logger .info ('Removed user (id: {0}) from group (ID: {1})' .format (user_id , group_item .id ))
64
84
65
- # Adds 1 user to 1 group
66
- def add_user (self , group_item , user_id ):
67
- user_set = group_item .users
85
+ def _add_user (self , group_item , user_id ):
68
86
if not group_item .id :
69
87
error = "Group item missing ID."
70
88
raise MissingRequiredFieldError (error )
@@ -74,7 +92,4 @@ def add_user(self, group_item, user_id):
74
92
url = "{0}/{1}/users" .format (self .baseurl , group_item .id )
75
93
add_req = RequestFactory .Group .add_user_req (user_id )
76
94
server_response = self .post_request (url , add_req )
77
- new_user = UserItem .from_response (server_response .content ).pop ()
78
- user_set .add (new_user )
79
- group_item ._set_users (user_set )
80
- logger .info ('Added user (id: {0}) to group (ID: {1})' .format (user_id , group_item .id ))
95
+ return UserItem .from_response (server_response .content ).pop ()
0 commit comments