Skip to content

Commit 3ccd408

Browse files
acaireRoach
authored andcommitted
include email as user property (#173)
1 parent 140c1d6 commit 3ccd408

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

slackclient/server.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,13 @@ def parse_user_data(self, user_data):
130130
user["tz"] = "unknown"
131131
if "real_name" not in user:
132132
user["real_name"] = user["name"]
133-
self.attach_user(user["name"], user["id"], user["real_name"], user["tz"])
133+
if "email" not in user["profile"]:
134+
user["profile"]["email"] = ""
135+
self.attach_user(user["name"],
136+
user["id"],
137+
user["real_name"],
138+
user["tz"],
139+
user["profile"]["email"])
134140

135141
def send_to_websocket(self, data):
136142
"""
@@ -196,8 +202,8 @@ def websocket_safe_read(self):
196202
raise
197203
return data.rstrip()
198204

199-
def attach_user(self, name, user_id, real_name, tz):
200-
self.users.update({user_id: User(self, name, user_id, real_name, tz)})
205+
def attach_user(self, name, user_id, real_name, tz, email):
206+
self.users.update({user_id: User(self, name, user_id, real_name, tz, email)})
201207

202208
def attach_channel(self, name, channel_id, members=None):
203209
if members is None:

slackclient/user.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
class User(object):
2-
def __init__(self, server, name, user_id, real_name, tz):
2+
def __init__(self, server, name, user_id, real_name, tz, email):
33
self.tz = tz
44
self.name = name
55
self.real_name = real_name
66
self.server = server
77
self.id = user_id
8+
self.email = email
89

910
def __eq__(self, compare_str):
1011
if compare_str in (self.id, self.name):

tests/test_server.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ def test_server_parse_user_data(server, rtm_start_fixture):
4242
userbyid = server.users.find('U10CX1234')
4343
assert type(userbyid) == User
4444
assert userbyid == "fakeuser"
45+
assert userbyid.email == '[email protected]'
4546
# Don't find invalid user
4647
userbyid = server.users.find('invaliduser')
4748
assert type(userbyid) != User

0 commit comments

Comments
 (0)