package org.gcube.gcat.moderation.thread.social.messages; import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; import org.gcube.social_networking.social_networking_client_library.MessageClient; import org.gcube.social_networking.socialnetworking.model.beans.Message; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Luca Frosini (ISTI - CNR) */ public class SocialMessage extends Thread { private static final Logger logger = LoggerFactory.getLogger(SocialMessage.class); public static final String ITEM_URL = "Item URL"; protected static final String RESPONSE_SUCCESS_KEY = "success"; protected static final String RESPONSE_MESSAGE_KEY = "message"; protected final ObjectMapper objectMapper; protected Message message; public SocialMessage() throws Exception { super(); this.objectMapper = new ObjectMapper(); } public Message getMessage() { return message; } public void setMessage(Message message) { this.message = message; } @Override public void run() { try { logger.info("Going to send Message {}", message); // write message sendSocialMessage(); } catch(Exception e) { logger.error("Error while executing post creation actions", e); } } public void sendSocialMessage() { try { MessageClient messageClient = new MessageClient(); String ret = messageClient.writeMessage(message); String messageString = objectMapper.writeValueAsString(message); logger.debug("The message that is going to be send is\n{}", messageString); JsonNode jsonNode = objectMapper.readTree(ret); if(jsonNode.get(RESPONSE_SUCCESS_KEY).asBoolean()) { logger.info("Message sent : {}", messageString); } else { logger.info("Failed to write the message {}. Reason {}", messageString, jsonNode.get(RESPONSE_MESSAGE_KEY).asText()); } } catch(Exception e) { logger.error("Unable to send the message : " + message.toString(), e); } } }