diff --git a/src/main/java/org/gcube/gcat/moderation/thread/social/messages/Message.java b/src/main/java/org/gcube/gcat/moderation/thread/social/messages/Message.java deleted file mode 100644 index 326a2fc..0000000 --- a/src/main/java/org/gcube/gcat/moderation/thread/social/messages/Message.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.gcube.gcat.moderation.thread.social.messages; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import org.gcube.com.fasterxml.jackson.annotation.JsonGetter; -import org.gcube.com.fasterxml.jackson.annotation.JsonIgnore; -import org.gcube.com.fasterxml.jackson.annotation.JsonProperty; - -/** - * @author Luca Frosini (ISTI - CNR) - */ -public class Message { - - public class Recipient { - - String id; - - public Recipient(String id) { - this.id = id; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - } - - @JsonProperty(value = "body") - protected String message; - @JsonProperty(value = "subject") - protected String subject; - @JsonIgnore - protected Collection users; - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public String getSubject() { - return subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } - - @JsonIgnore - public Collection getUsers() { - return users; - } - - @JsonIgnore - public void setUsers(Collection users) { - this.users = users; - } - - @JsonIgnore - public void addUser(String user) { - this.users.add(user); - } - - @JsonGetter(value = "recipients") - public List getRecipients() { - List recipients = new ArrayList<>(); - for(String username : users) { - recipients.add(new Recipient(username)); - } - return recipients; - } - - @Override - public String toString() { - return "Message [message=" + message + ", subject=" + subject + ", users=" + users + "]"; - } - -} diff --git a/src/main/java/org/gcube/gcat/moderation/thread/social/messages/SocialMessage.java b/src/main/java/org/gcube/gcat/moderation/thread/social/messages/SocialMessage.java index cec279c..24d789d 100644 --- a/src/main/java/org/gcube/gcat/moderation/thread/social/messages/SocialMessage.java +++ b/src/main/java/org/gcube/gcat/moderation/thread/social/messages/SocialMessage.java @@ -1,18 +1,9 @@ package org.gcube.gcat.moderation.thread.social.messages; -import java.net.HttpURLConnection; - -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; - import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; -import org.gcube.common.authorization.utils.manager.SecretManager; -import org.gcube.common.authorization.utils.manager.SecretManagerProvider; -import org.gcube.common.authorization.utils.socialservice.SocialService; -import org.gcube.common.gxhttp.request.GXHTTPStringRequest; -import org.gcube.gcat.utils.Constants; -import org.gcube.gcat.utils.HTTPUtility; +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; @@ -25,9 +16,6 @@ public class SocialMessage extends Thread { public static final String ITEM_URL = "Item URL"; - // https://wiki.gcube-system.org/gcube/Social_Networking_Service#Send_a_message - protected static final String SOCIAL_SERVICE_SEND_MESSAGE_PATH = "/2/messages/write-message"; - protected static final String RESPONSE_SUCCESS_KEY = "success"; protected static final String RESPONSE_MESSAGE_KEY = "message"; @@ -61,27 +49,13 @@ public class SocialMessage extends Thread { } public void sendSocialMessage() { - try { - String basePath = SocialService.getSocialService().getServiceBasePath(); - if(basePath == null) { - logger.info("Unable to send a message because there is no social networking service available"); - return; - } - basePath = basePath.endsWith("/") ? basePath : basePath + "/"; - + 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); - GXHTTPStringRequest gxhttpStringRequest = GXHTTPStringRequest.newRequest(basePath); - gxhttpStringRequest.from(Constants.CATALOGUE_NAME); - gxhttpStringRequest.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); - SecretManager secretManager = SecretManagerProvider.instance.get(); - gxhttpStringRequest.setSecurityToken(secretManager.getCurrentSecretHolder().getSecrets().first().getToken()); - gxhttpStringRequest.path(SOCIAL_SERVICE_SEND_MESSAGE_PATH); - - HttpURLConnection httpURLConnection = gxhttpStringRequest.post(messageString); - String ret = HTTPUtility.getResultAsString(httpURLConnection); JsonNode jsonNode = objectMapper.readTree(ret); if(jsonNode.get(RESPONSE_SUCCESS_KEY).asBoolean()) { logger.info("Message sent : {}", messageString); @@ -92,7 +66,6 @@ public class SocialMessage extends Thread { } catch(Exception e) { logger.error("Unable to send the message : " + message.toString(), e); } - } } \ No newline at end of file diff --git a/src/main/java/org/gcube/gcat/moderation/thread/social/messages/SocialMessageModerationThread.java b/src/main/java/org/gcube/gcat/moderation/thread/social/messages/SocialMessageModerationThread.java index 2db8759..e3afa28 100644 --- a/src/main/java/org/gcube/gcat/moderation/thread/social/messages/SocialMessageModerationThread.java +++ b/src/main/java/org/gcube/gcat/moderation/thread/social/messages/SocialMessageModerationThread.java @@ -1,6 +1,8 @@ package org.gcube.gcat.moderation.thread.social.messages; import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; import java.util.Set; import org.gcube.common.authorization.utils.manager.SecretManager; @@ -11,6 +13,8 @@ import org.gcube.gcat.api.moderation.Moderated; import org.gcube.gcat.moderation.thread.ModerationThread; import org.gcube.gcat.social.SocialUsers; import org.gcube.gcat.utils.Constants; +import org.gcube.social_networking.socialnetworking.model.beans.Message; +import org.gcube.social_networking.socialnetworking.model.beans.Recipient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -139,12 +143,21 @@ public class SocialMessageModerationThread extends ModerationThread { return stringWriter.toString(); } + protected List getRecipients(Set users) { + List recipients = new ArrayList<>(); + for(String username : users) { + recipients.add(new Recipient(username)); + } + return recipients; + } + protected Message getMessage(String messageString) throws Exception { Message message = new Message(); - message.setMessage(messageString); + message.setBody(messageString); message.setSubject(getSubject()); Set moderators = SocialUsers.getUsernamesByRole(Moderated.CATALOGUE_MODERATOR); - message.setUsers(moderators); + List recipients = getRecipients(moderators); + message.setRecipients(recipients); return message; } @@ -153,7 +166,8 @@ public class SocialMessageModerationThread extends ModerationThread { SecretManager secretManager = SecretManagerProvider.instance.get(); String username = secretManager.getUser().getUsername(); Message message = getMessage(messageString); - message.addUser(username); + List recipients = message.getRecipients(); + recipients.add(new Recipient(username)); Secret secret = Constants.getCatalogueSecret(); secretManager.startSession(secret); try { @@ -176,7 +190,8 @@ public class SocialMessageModerationThread extends ModerationThread { Message message = getMessage(stringBuffer.toString()); SecretManager secretManager = SecretManagerProvider.instance.get(); String username = secretManager.getUser().getUsername(); - message.addUser(username); + List recipients = message.getRecipients(); + recipients.add(new Recipient(username)); Secret secret = Constants.getCatalogueSecret(); secretManager.startSession(secret); try {