Skip to content

Commit

Permalink
Merge pull request #51 from kushal/master
Browse files Browse the repository at this point in the history
Correctly parse reactions to files. + bug fix
  • Loading branch information
bcorne committed Feb 21, 2016
2 parents 26a1191 + f79b8c4 commit ba8eab6
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 22 deletions.
@@ -1,12 +1,16 @@
package com.ullink.slack.simpleslackapi.events;

import com.ullink.slack.simpleslackapi.SlackChannel;
import com.ullink.slack.simpleslackapi.SlackUser;


public interface ReactionAdded extends SlackEvent{
public interface ReactionAdded extends SlackEvent {

public String getEmojiName();
public SlackChannel getChannel();
public SlackUser getUser();
public String getMessageID();

public String getFileID();
public String getFileCommentID();

}
@@ -1,13 +1,15 @@
package com.ullink.slack.simpleslackapi.events;

import com.ullink.slack.simpleslackapi.SlackChannel;
import com.ullink.slack.simpleslackapi.SlackUser;

public interface ReactionRemoved extends SlackEvent {

public String getEmojiName();

public SlackChannel getChannel();

public SlackUser getUser();
public String getMessageID();

public String getFileID();
public String getFileCommentID();

}
@@ -1,6 +1,7 @@
package com.ullink.slack.simpleslackapi.impl;

import com.ullink.slack.simpleslackapi.SlackChannel;
import com.ullink.slack.simpleslackapi.SlackUser;
import com.ullink.slack.simpleslackapi.events.ReactionAdded;
import com.ullink.slack.simpleslackapi.events.SlackEventType;

Expand All @@ -9,11 +10,17 @@ public class ReactionAddedImpl implements ReactionAdded {
private final String emojiName;
private final String messageID;
private final SlackChannel channel;

public ReactionAddedImpl(String emojiName, String messageID, SlackChannel channel) {
private final SlackUser user;
private final String fileID;
private final String fileCommentID;

public ReactionAddedImpl(String emojiName, SlackUser user, SlackChannel channel, String messageID, String fileID, String fileCommentID) {
this.emojiName = emojiName;
this.messageID = messageID;
this.user = user;
this.channel = channel;
this.messageID = messageID;
this.fileID = fileID;
this.fileCommentID = fileCommentID;
}

@Override
Expand All @@ -31,6 +38,21 @@ public String getMessageID() {
return messageID;
}

@Override
public String getFileID() {
return fileID;
}

@Override
public String getFileCommentID() {
return fileCommentID;
}

@Override
public SlackUser getUser() {
return user;
}

@Override
public SlackEventType getEventType() {
return SlackEventType.REACTION_ADDED;
Expand Down
@@ -1,18 +1,25 @@
package com.ullink.slack.simpleslackapi.impl;

import com.ullink.slack.simpleslackapi.SlackChannel;
import com.ullink.slack.simpleslackapi.SlackUser;
import com.ullink.slack.simpleslackapi.events.ReactionRemoved;
import com.ullink.slack.simpleslackapi.events.SlackEventType;

public class ReactionRemovedImpl implements ReactionRemoved{
private final String emojiName;
private final String messageID;
private final SlackChannel channel;

public ReactionRemovedImpl(String emojiName, String messageID, SlackChannel channel) {
private final SlackUser user;
private final String messageID;
private final String fileID;
private final String fileCommentID;

public ReactionRemovedImpl(String emojiName, SlackUser user, SlackChannel channel, String messageID, String fileID, String fileCommentID) {
this.emojiName = emojiName;
this.messageID = messageID;
this.user = user;
this.channel = channel;
this.messageID = messageID;
this.fileID = fileID;
this.fileCommentID = fileCommentID;
}

@Override
Expand All @@ -30,6 +37,21 @@ public String getMessageID() {
return messageID;
}

@Override
public String getFileID() {
return fileID;
}

@Override
public String getFileCommentID() {
return fileCommentID;
}

@Override
public SlackUser getUser() {
return user;
}

@Override
public SlackEventType getEventType() {
return SlackEventType.REACTION_REMOVED;
Expand Down
Expand Up @@ -280,16 +280,20 @@ private static SlackChannel parseChannelDescription(JSONObject channelJSONObject
String name = (String) channelJSONObject.get("name");
String topic = (String)((Map)channelJSONObject.get("topic")).get("value");
String purpose = (String) ((Map) channelJSONObject.get("purpose")).get("value");
return new SlackChannelImpl(id, name, topic, purpose, true);
return new SlackChannelImpl(id, name, topic, purpose, id.startsWith("D"));
}


private static ReactionAdded extractReactionAddedEvent(SlackSession slackSession, JSONObject obj) {
JSONObject message = (JSONObject) obj.get("item");
JSONObject item = (JSONObject) obj.get("item");
String emojiName = (String) obj.get("reaction");
String messageId = (String) message.get("ts");
String channelId = (String) message.get("channel");
return new ReactionAddedImpl(emojiName, messageId, slackSession.findChannelById(channelId));
String messageId = (String) item.get("ts");
String fileId = (String) item.get("file");
String fileCommentId = (String) item.get("file_comment");
String channelId = (String) item.get("channel");
SlackChannel channel = (channelId != null) ? slackSession.findChannelById(channelId) : null;
SlackUser user = slackSession.findUserById((String) obj.get("user"));
return new ReactionAddedImpl(emojiName, user, channel, messageId, fileId, fileCommentId);
}

private static SlackUserChange extractUserChangeEvent(SlackSession slackSession, JSONObject obj) {
Expand All @@ -299,11 +303,15 @@ private static SlackUserChange extractUserChangeEvent(SlackSession slackSession,
}

private static ReactionRemoved extractReactionRemovedEvent(SlackSession slackSession, JSONObject obj) {
JSONObject message = (JSONObject) obj.get("item");
String emojiName = (String) obj.get("reaction");
String messageId = (String) message.get("ts");
String channelId = (String) message.get("channel");
return new ReactionRemovedImpl(emojiName, messageId, slackSession.findChannelById(channelId));
JSONObject item = (JSONObject) obj.get("item");
String emojiName = (String) obj.get("reaction");
String messageId = (String) item.get("ts");
String fileId = (String) item.get("file");
String fileCommentId = (String) item.get("file_comment");
String channelId = (String) item.get("channel");
SlackChannel channel = (channelId != null) ? slackSession.findChannelById(channelId) : null;
SlackUser user = slackSession.findUserById((String) obj.get("user"));
return new ReactionRemovedImpl(emojiName, user, channel, messageId, fileId, fileCommentId);
}

private static PinRemoved extractPinRemovedEvent(SlackSession slackSession, JSONObject obj) {
Expand Down

0 comments on commit ba8eab6

Please sign in to comment.