Skip to content

Commit

Permalink
IMP adding some more fields for SlackUsers
Browse files Browse the repository at this point in the history
Adding the information related to timezones, see
issue Itiviti#27

Change-Id: Icda63aa520722fc28a816ba02620674186cb4c7b
  • Loading branch information
Benoit Corne committed Sep 4, 2015
1 parent bdb008b commit 38ad1a6
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,7 @@ public enum SlackPresence { UNKNOWN, ACTIVE, AWAY, AUTO }
boolean isRestricted();
boolean isUltraRestricted();
boolean isBot();
String getTimeZone();
String getTimeZoneLabel();
int getTimeZoneOffset();
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class SlackBotImpl extends SlackPersonaImpl implements SlackBot
{
SlackBotImpl(String id, String userName, String realName, String userMail, boolean deleted, boolean admin, boolean owner, boolean primaryOwner, boolean restricted, boolean ultraRestricted)
{
super(id, userName, realName, userMail, deleted, admin, owner, primaryOwner, restricted, ultraRestricted, true);
super(id, userName, realName, userMail, deleted, admin, owner, primaryOwner, restricted, ultraRestricted, true,null,null,0);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,23 @@ static final SlackUser buildSlackUser(JSONObject jsonUser)
String id = (String) jsonUser.get("id");
String name = (String) jsonUser.get("name");
String realName = (String) jsonUser.get("real_name");
Boolean deleted = ifNullFalse(jsonUser,"deleted");
Boolean admin = ifNullFalse(jsonUser,"is_admin");
Boolean owner = ifNullFalse(jsonUser,"is_owner");
Boolean primaryOwner = ifNullFalse(jsonUser,"is_primary_owner");
Boolean restricted = ifNullFalse(jsonUser,"is_restricted");
Boolean ultraRestricted = ifNullFalse(jsonUser,"is_ultra_restricted");
Boolean bot = ifNullFalse(jsonUser,"is_bot");
String tz = (String) jsonUser.get("tz");
String tzLabel = (String) jsonUser.get("tz_label");
Long tzOffset = ((Long) jsonUser.get("tz_offset"));
Boolean deleted = ifNullFalse(jsonUser, "deleted");
Boolean admin = ifNullFalse(jsonUser, "is_admin");
Boolean owner = ifNullFalse(jsonUser, "is_owner");
Boolean primaryOwner = ifNullFalse(jsonUser, "is_primary_owner");
Boolean restricted = ifNullFalse(jsonUser, "is_restricted");
Boolean ultraRestricted = ifNullFalse(jsonUser, "is_ultra_restricted");
Boolean bot = ifNullFalse(jsonUser, "is_bot");
JSONObject profileJSON = (JSONObject) jsonUser.get("profile");
String email = "";
if (profileJSON != null)
{
email = (String) profileJSON.get("email");
}
return new SlackUserImpl(id, name, realName, email, deleted, admin, owner, primaryOwner, restricted, ultraRestricted, bot);
return new SlackUserImpl(id, name, realName, email, deleted, admin, owner, primaryOwner, restricted, ultraRestricted, bot, tz, tzLabel, tzOffset == null ? null : new Integer(tzOffset.intValue()));
}

private static Boolean ifNullFalse(JSONObject jsonUser, String field)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,11 @@ class SlackPersonaImpl implements SlackPersona
final boolean restricted;
final boolean ultraRestricted;
final boolean bot;
final String timeZone;
final String timeZoneLabel;
final Integer timeZoneOffset;

SlackPersonaImpl(String id, String userName, String realName, String userMail, boolean deleted, boolean admin, boolean owner, boolean primaryOwner, boolean restricted, boolean ultraRestricted, boolean bot)
SlackPersonaImpl(String id, String userName, String realName, String userMail, boolean deleted, boolean admin, boolean owner, boolean primaryOwner, boolean restricted, boolean ultraRestricted, boolean bot, String timeZone, String timeZoneLabel, Integer timeZoneOffset)
{
this.id = id;
this.userName = userName;
Expand All @@ -29,6 +32,9 @@ class SlackPersonaImpl implements SlackPersona
this.restricted = restricted;
this.ultraRestricted = ultraRestricted;
this.bot = bot;
this.timeZone = timeZone;
this.timeZoneLabel = timeZoneLabel;
this.timeZoneOffset = timeZoneOffset;
}

@Override
Expand Down Expand Up @@ -97,4 +103,22 @@ public String getRealName()
return realName;
}

@Override
public String getTimeZone()
{
return timeZone;
}

@Override
public String getTimeZoneLabel()
{
return timeZoneLabel;
}

@Override
public int getTimeZoneOffset()
{
return timeZoneOffset;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ class SlackUserImpl extends SlackPersonaImpl implements SlackUser
public String toString()
{
return "SlackUserImpl{" + "id='" + id + '\'' + ", userName='" + userName + '\'' + ", realName='" + realName + '\'' + ", userMail='" + userMail + '\'' + ", isDeleted=" + deleted + '\'' + ", isAdmin=" + admin + '\'' + ", isOwner="
+ owner + '\'' + ", isPrimaryOwner=" + primaryOwner + '\'' + ", isRestricted=" + restricted + '\'' + ", isUltraRestricted=" + ultraRestricted + '}';
+ owner + '\'' + ", isPrimaryOwner=" + primaryOwner + '\'' + ", isRestricted=" + restricted + '\'' + ", isUltraRestricted=" + ultraRestricted + ", timeZone=" + timeZone + ", timeZoneLabel=" + timeZoneLabel + ", timeZoneOffset="
+ timeZoneOffset + "}";
}

SlackUserImpl(String id, String userName, String realName, String userMail, boolean deleted, boolean admin, boolean owner, boolean primaryOwner, boolean restricted, boolean ultraRestricted, boolean bot)
SlackUserImpl(String id, String userName, String realName, String userMail, boolean deleted, boolean admin, boolean owner, boolean primaryOwner, boolean restricted, boolean ultraRestricted, boolean bot, String timeZone,
String timeZoneLabel, Integer timeZoneOffset)
{
super(id, userName, realName, userMail, deleted, admin, owner, primaryOwner, restricted, ultraRestricted, bot);
super(id, userName, realName, userMail, deleted, admin, owner, primaryOwner, restricted, ultraRestricted, bot, timeZone, timeZoneLabel, timeZoneOffset);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ public void connect()
channels.put("channelid4",new SlackChannelImpl("channelid4", "testchannel4", "topicchannel4", "topicchannel4", false));
channels.put("channelid5",new SlackChannelImpl("channelid5", "testchannel5", "topicchannel5", "topicchannel5", false));

users.put("userid1",new SlackUserImpl("userid1", "username1", "realname1","userid1@my.mail", false,false,false,false,false,false, false));
users.put("userid2",new SlackUserImpl("userid2", "username2", "realname2","userid2@my.mail", false,false,false,false,false,false, false));
users.put("userid3",new SlackUserImpl("userid3", "username3", "realname3","userid3@my.mail", true,false,false,false,false,false, false));
users.put("userid4",new SlackUserImpl("userid4", "username4", "realname4","userid4@my.mail", false,false,false,false,false,false, false));
users.put("userid5",new SlackUserImpl("userid5", "username5", "realname4","userid5@my.mail", true,false,false,false,false,false, false));

users.put("botid1",new SlackUserImpl("botid1", "botname1", "real bot name 1", null,false,false,false,false,false,false,true));
users.put("botid2",new SlackUserImpl("botid2", "botname2", "real bot name 2", null,false,false,false,false,false,false,true));
users.put("botid3",new SlackUserImpl("botid3", "botname3", "real bot name 3", null, true,false,false,false,false,false,true));
users.put("userid1",new SlackUserImpl("userid1", "username1", "realname1","userid1@my.mail", false,false,false,false,false,false, false,"tz","tzLabel",new Integer(0)));
users.put("userid2",new SlackUserImpl("userid2", "username2", "realname2","userid2@my.mail", false,false,false,false,false,false, false,"tz","tzLabel",new Integer(0)));
users.put("userid3",new SlackUserImpl("userid3", "username3", "realname3","userid3@my.mail", true,false,false,false,false,false, false,"tz","tzLabel",new Integer(0)));
users.put("userid4",new SlackUserImpl("userid4", "username4", "realname4","userid4@my.mail", false,false,false,false,false,false, false,"tz","tzLabel",new Integer(0)));
users.put("userid5",new SlackUserImpl("userid5", "username5", "realname4","userid5@my.mail", true,false,false,false,false,false, false,"tz","tzLabel",new Integer(0)));

users.put("botid1",new SlackUserImpl("botid1", "botname1", "real bot name 1", null,false,false,false,false,false,false,true,"tz","tzLabel",new Integer(0)));
users.put("botid2",new SlackUserImpl("botid2", "botname2", "real bot name 2", null,false,false,false,false,false,false,true,"tz","tzLabel",new Integer(0)));
users.put("botid3",new SlackUserImpl("botid3", "botname3", "real bot name 3", null, true,false,false,false,false,false,true,"tz","tzLabel",new Integer(0)));

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ public void setup()
@Override
public void connect()
{
SlackUser user1 = new SlackUserImpl("TESTUSER1", "test user 1", "", "", false,false,false,false,false,false, false);
SlackUser user2 = new SlackUserImpl("TESTUSER2", "test user 2", "", "", false,false,false,false,false,false, false);
SlackUser user3 = new SlackUserImpl("TESTUSER3", "test user 3", "", "", false,false,false,false,false,false, false);
SlackUser user1 = new SlackUserImpl("TESTUSER1", "test user 1", "", "", false, false, false, false, false, false, false, "tz", "tzLabel", new Integer(0));
SlackUser user2 = new SlackUserImpl("TESTUSER2", "test user 2", "", "", false, false, false, false, false, false, false, "tz", "tzLabel", new Integer(0));
SlackUser user3 = new SlackUserImpl("TESTUSER3", "test user 3", "", "", false, false, false, false, false, false, false, "tz", "tzLabel", new Integer(0));
users.put(user1.getId(), user1);
users.put(user2.getId(), user2);
users.put(user3.getId(), user3);
Expand Down Expand Up @@ -74,7 +74,8 @@ public SlackMessageHandle sendMessageOverWebSocket(SlackChannel channel, String
}

@Override
public SlackPersona.SlackPresence getPresence(SlackPersona persona) {
public SlackPersona.SlackPresence getPresence(SlackPersona persona)
{
return null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.assertj.core.api.Assertions;
import static org.assertj.core.api.Assertions.*;
import org.junit.Test;

public class TestSlackJSONSessionStatusParser
Expand All @@ -22,8 +22,11 @@ public void testParsingSessionDescription() throws Exception
}
SlackJSONSessionStatusParser parser = new SlackJSONSessionStatusParser(strBuilder.toString());
parser.parse();
Assertions.assertThat(parser.getChannels()).containsOnlyKeys("CHANNELID1","CHANNELID2","CHANNELID3","GROUPID1","DIM01");
Assertions.assertThat(parser.getUsers()).containsOnlyKeys("USERID1","USERID2","USERID3","USERID4","BOTID1","BOTID2");
Assertions.assertThat(parser.getWebSocketURL()).isEqualTo("wss://mywebsocketurl");
assertThat(parser.getChannels()).containsOnlyKeys("CHANNELID1","CHANNELID2","CHANNELID3","GROUPID1","DIM01");
assertThat(parser.getUsers()).containsOnlyKeys("USERID1","USERID2","USERID3","USERID4","BOTID1","BOTID2");
assertThat(parser.getWebSocketURL()).isEqualTo("wss://mywebsocketurl");
assertThat(parser.getUsers().get("USERID1").getTimeZone()).isEqualTo("Europe/Amsterdam");
assertThat(parser.getUsers().get("USERID1").getTimeZoneLabel()).isEqualTo("Central European Summer Time");
assertThat(parser.getUsers().get("USERID1").getTimeZoneOffset()).isEqualTo(7200);
}
}

0 comments on commit 38ad1a6

Please sign in to comment.