Migrated code to social-service-client
This commit is contained in:
parent
83cbdd04bc
commit
fae090d6bc
|
@ -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<String> 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<String> getUsers() {
|
|
||||||
return users;
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
public void setUsers(Collection<String> users) {
|
|
||||||
this.users = users;
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
public void addUser(String user) {
|
|
||||||
this.users.add(user);
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonGetter(value = "recipients")
|
|
||||||
public List<Recipient> getRecipients() {
|
|
||||||
List<Recipient> 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 + "]";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,18 +1,9 @@
|
||||||
package org.gcube.gcat.moderation.thread.social.messages;
|
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.JsonNode;
|
||||||
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
|
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import org.gcube.common.authorization.utils.manager.SecretManager;
|
import org.gcube.social_networking.social_networking_client_library.MessageClient;
|
||||||
import org.gcube.common.authorization.utils.manager.SecretManagerProvider;
|
import org.gcube.social_networking.socialnetworking.model.beans.Message;
|
||||||
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.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@ -25,9 +16,6 @@ public class SocialMessage extends Thread {
|
||||||
|
|
||||||
public static final String ITEM_URL = "Item URL";
|
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_SUCCESS_KEY = "success";
|
||||||
protected static final String RESPONSE_MESSAGE_KEY = "message";
|
protected static final String RESPONSE_MESSAGE_KEY = "message";
|
||||||
|
|
||||||
|
@ -61,27 +49,13 @@ public class SocialMessage extends Thread {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendSocialMessage() {
|
public void sendSocialMessage() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String basePath = SocialService.getSocialService().getServiceBasePath();
|
MessageClient messageClient = new MessageClient();
|
||||||
if(basePath == null) {
|
String ret = messageClient.writeMessage(message);
|
||||||
logger.info("Unable to send a message because there is no social networking service available");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
basePath = basePath.endsWith("/") ? basePath : basePath + "/";
|
|
||||||
|
|
||||||
String messageString = objectMapper.writeValueAsString(message);
|
String messageString = objectMapper.writeValueAsString(message);
|
||||||
logger.debug("The message that is going to be send is\n{}", messageString);
|
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);
|
JsonNode jsonNode = objectMapper.readTree(ret);
|
||||||
if(jsonNode.get(RESPONSE_SUCCESS_KEY).asBoolean()) {
|
if(jsonNode.get(RESPONSE_SUCCESS_KEY).asBoolean()) {
|
||||||
logger.info("Message sent : {}", messageString);
|
logger.info("Message sent : {}", messageString);
|
||||||
|
@ -92,7 +66,6 @@ public class SocialMessage extends Thread {
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
logger.error("Unable to send the message : " + message.toString(), e);
|
logger.error("Unable to send the message : " + message.toString(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,6 +1,8 @@
|
||||||
package org.gcube.gcat.moderation.thread.social.messages;
|
package org.gcube.gcat.moderation.thread.social.messages;
|
||||||
|
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.gcube.common.authorization.utils.manager.SecretManager;
|
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.moderation.thread.ModerationThread;
|
||||||
import org.gcube.gcat.social.SocialUsers;
|
import org.gcube.gcat.social.SocialUsers;
|
||||||
import org.gcube.gcat.utils.Constants;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@ -139,12 +143,21 @@ public class SocialMessageModerationThread extends ModerationThread {
|
||||||
return stringWriter.toString();
|
return stringWriter.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected List<Recipient> getRecipients(Set<String> users) {
|
||||||
|
List<Recipient> recipients = new ArrayList<>();
|
||||||
|
for(String username : users) {
|
||||||
|
recipients.add(new Recipient(username));
|
||||||
|
}
|
||||||
|
return recipients;
|
||||||
|
}
|
||||||
|
|
||||||
protected Message getMessage(String messageString) throws Exception {
|
protected Message getMessage(String messageString) throws Exception {
|
||||||
Message message = new Message();
|
Message message = new Message();
|
||||||
message.setMessage(messageString);
|
message.setBody(messageString);
|
||||||
message.setSubject(getSubject());
|
message.setSubject(getSubject());
|
||||||
Set<String> moderators = SocialUsers.getUsernamesByRole(Moderated.CATALOGUE_MODERATOR);
|
Set<String> moderators = SocialUsers.getUsernamesByRole(Moderated.CATALOGUE_MODERATOR);
|
||||||
message.setUsers(moderators);
|
List<Recipient> recipients = getRecipients(moderators);
|
||||||
|
message.setRecipients(recipients);
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +166,8 @@ public class SocialMessageModerationThread extends ModerationThread {
|
||||||
SecretManager secretManager = SecretManagerProvider.instance.get();
|
SecretManager secretManager = SecretManagerProvider.instance.get();
|
||||||
String username = secretManager.getUser().getUsername();
|
String username = secretManager.getUser().getUsername();
|
||||||
Message message = getMessage(messageString);
|
Message message = getMessage(messageString);
|
||||||
message.addUser(username);
|
List<Recipient> recipients = message.getRecipients();
|
||||||
|
recipients.add(new Recipient(username));
|
||||||
Secret secret = Constants.getCatalogueSecret();
|
Secret secret = Constants.getCatalogueSecret();
|
||||||
secretManager.startSession(secret);
|
secretManager.startSession(secret);
|
||||||
try {
|
try {
|
||||||
|
@ -176,7 +190,8 @@ public class SocialMessageModerationThread extends ModerationThread {
|
||||||
Message message = getMessage(stringBuffer.toString());
|
Message message = getMessage(stringBuffer.toString());
|
||||||
SecretManager secretManager = SecretManagerProvider.instance.get();
|
SecretManager secretManager = SecretManagerProvider.instance.get();
|
||||||
String username = secretManager.getUser().getUsername();
|
String username = secretManager.getUser().getUsername();
|
||||||
message.addUser(username);
|
List<Recipient> recipients = message.getRecipients();
|
||||||
|
recipients.add(new Recipient(username));
|
||||||
Secret secret = Constants.getCatalogueSecret();
|
Secret secret = Constants.getCatalogueSecret();
|
||||||
secretManager.startSession(secret);
|
secretManager.startSession(secret);
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue