package com.zulip.android.networking.response.events;
import com.google.gson.annotations.SerializedName;
import com.zulip.android.models.Reaction;
import com.zulip.android.models.UserReaction;
/**
* This class is used to deserialize the reaction type event {@link EventsBranch.BranchType#REACTION}
* example: {"emoji_name":"alarm_clock","id":54,"user":{"user_id":346,"email":"abc@gmail.com","full_name":"anonymous user"},"type":"reaction","message_id":163213,"op":"add"}
* {"emoji_name":"alarm_clock","id":72,"user":{"user_id":346,"email":"abc@gmail.com","full_name":"anonymous user"},"type":"reaction","message_id":163213,"op":"remove"}
*/
public class ReactionWrapper extends EventsBranch {
public static final String OPERATION_ADD = "add";
public static final String OPERATION_REMOVE = "remove";
@SerializedName("emoji_name")
private String emoji;
@SerializedName("user")
private UserReaction user;
@SerializedName("message_id")
private int messageId;
@SerializedName("op")
private String operation;
public ReactionWrapper() {
}
public int getMessageId() {
return this.messageId;
}
public Reaction getReaction() {
// correctly initialize User object
if (this.user != null) {
this.user.setId(this.user.getAlternateId());
}
Reaction retVal = new Reaction();
retVal.setEmoji(this.emoji);
retVal.setUser(this.user);
return retVal;
}
public String getOperation() {
return this.operation;
}
}