
org.riversun.xternal.simpleslackapi.impl.SlackJSONParsingUtils Maven / Gradle / Ivy
package org.riversun.xternal.simpleslackapi.impl;
import java.util.Map;
import org.riversun.xternal.simpleslackapi.SlackIntegration;
import org.riversun.xternal.simpleslackapi.SlackPersona;
import org.riversun.xternal.simpleslackapi.SlackTeam;
import org.riversun.xternal.simpleslackapi.SlackUser;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
class SlackJSONParsingUtils {
private SlackJSONParsingUtils() {
// Helper class
}
static final SlackUser buildSlackUser(JsonObject jsonUser)
{
String id = GsonHelper.getStringOrNull(jsonUser.get("id"));
String name = GsonHelper.getStringOrNull(jsonUser.get("name"));
String realName = GsonHelper.getStringOrNull(jsonUser.get("real_name"));
String tz = GsonHelper.getStringOrNull(jsonUser.get("tz"));
String tzLabel = GsonHelper.getStringOrNull(jsonUser.get("tz_label"));
JsonElement element = jsonUser.get("tz_offset");
Integer tzOffset = null;
if (element != null)
{
tzOffset = element.getAsInt();
}
Boolean deleted = GsonHelper.ifNullFalse(jsonUser.get("deleted"));
Boolean admin = GsonHelper.ifNullFalse(jsonUser.get("is_admin"));
Boolean owner = GsonHelper.ifNullFalse(jsonUser.get("is_owner"));
Boolean primaryOwner = GsonHelper.ifNullFalse(jsonUser.get("is_primary_owner"));
Boolean restricted = GsonHelper.ifNullFalse(jsonUser.get("is_restricted"));
Boolean ultraRestricted = GsonHelper.ifNullFalse(jsonUser.get("is_ultra_restricted"));
Boolean bot = GsonHelper.ifNullFalse(jsonUser.get("is_bot"));
JsonObject profileJSON = GsonHelper.getJsonObjectOrNull(jsonUser.get("profile"));
String email = "";
String skype = "";
String title = "";
String phone = "";
String presence = "";
if (profileJSON !=null && !profileJSON.isJsonNull())
{
email = GsonHelper.getStringOrNull(profileJSON.get("email"));
skype = GsonHelper.getStringOrNull(profileJSON.get("skype"));
title = GsonHelper.getStringOrNull(profileJSON.get("title"));
phone = GsonHelper.getStringOrNull(profileJSON.get("phone"));
presence = GsonHelper.getStringOrNull(profileJSON.get("presence"));
}
SlackPersona.SlackPresence slackPresence = SlackPersona.SlackPresence.UNKNOWN;
if ("active".equals(presence))
{
slackPresence = SlackPersona.SlackPresence.ACTIVE;
}
if ("away".equals(presence))
{
slackPresence = SlackPersona.SlackPresence.AWAY;
}
return new SlackUserImpl(id, name, realName, email, skype, title, phone, deleted, admin, owner, primaryOwner, restricted, ultraRestricted, bot, tz, tzLabel, tzOffset == null ? null : new Integer(tzOffset.intValue()), slackPresence);
}
static final SlackChannelImpl buildSlackChannel(JsonObject jsonChannel, Map knownUsersById) {
String id = GsonHelper.getStringOrNull(jsonChannel.get("id"));
String name = GsonHelper.getStringOrNull(jsonChannel.get("name"));
String topic = null;
if (jsonChannel.has("topic")) {
topic = GsonHelper.getStringOrNull(jsonChannel.get("topic").getAsJsonObject().get("value"));
}
String purpose = null;
if (jsonChannel.has("purpose")) {
purpose = GsonHelper.getStringOrNull(jsonChannel.get("purpose").getAsJsonObject().get("value"));
}
boolean isMember = false;
if (jsonChannel.has("is_member")) {
isMember = jsonChannel.get("is_member").getAsBoolean();
}
boolean isArchived = false;
if (jsonChannel.has("is_archived")) {
isArchived = jsonChannel.get("is_archived").getAsBoolean();
}
SlackChannelImpl toReturn = new SlackChannelImpl(id, name, topic, purpose, false, isMember, isArchived);
JsonArray membersJson = GsonHelper.getJsonArrayOrNull(jsonChannel.get("members"));
if (membersJson != null) {
for (JsonElement jsonMembersObject : membersJson) {
String memberId = jsonMembersObject.getAsString();
SlackUser user = knownUsersById.get(memberId);
toReturn.addUser(user);
}
}
return toReturn;
}
static final SlackChannelImpl buildSlackImChannel(JsonObject jsonChannel, Map knownUsersById)
{
String id = GsonHelper.getStringOrNull(jsonChannel.get("id"));
SlackChannelImpl toReturn = new SlackChannelImpl(id, null, null, null, true, false, false);
String memberId = GsonHelper.getStringOrNull(jsonChannel.get("user"));
SlackUser user = knownUsersById.get(memberId);
toReturn.addUser(user);
return toReturn;
}
static final SlackTeam buildSlackTeam(JsonObject jsonTeam)
{
String id = GsonHelper.getStringOrNull(jsonTeam.get("id"));
String name = GsonHelper.getStringOrNull(jsonTeam.get("name"));
String domain = GsonHelper.getStringOrNull(jsonTeam.get("domain"));
return new SlackTeamImpl(id, name, domain);
}
static final SlackIntegration buildSlackIntegration(JsonObject jsonIntegration) {
String id = GsonHelper.getStringOrNull(jsonIntegration.get("id"));
String name = GsonHelper.getStringOrNull(jsonIntegration.get("name"));
boolean deleted = GsonHelper.getBooleanOrDefaultValue(jsonIntegration.get("deleted"),false);
return new SlackIntegrationImpl(id, name, deleted);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy