gcat/src/main/java/org/gcube/gcat/moderation/thread/social/SocialMessageModerationThre...

80 lines
2.6 KiB
Java
Raw Normal View History

package org.gcube.gcat.moderation.thread.social;
2022-03-25 18:38:26 +01:00
import java.io.StringWriter;
import java.util.Set;
2022-03-29 15:17:30 +02:00
import org.gcube.common.authorization.utils.manager.SecretManager;
2022-03-25 18:38:26 +01:00
import org.gcube.common.authorization.utils.manager.SecretManagerProvider;
2022-03-29 15:17:30 +02:00
import org.gcube.common.authorization.utils.secret.Secret;
2022-03-25 18:38:26 +01:00
import org.gcube.gcat.api.moderation.CMItemStatus;
import org.gcube.gcat.api.moderation.Moderated;
import org.gcube.gcat.moderation.thread.ModerationThread;
2022-03-25 18:38:26 +01:00
import org.gcube.gcat.social.Message;
2022-03-29 15:17:30 +02:00
import org.gcube.gcat.social.SocialMessage;
2022-03-25 18:38:26 +01:00
import org.gcube.gcat.social.SocialUsers;
2022-03-29 15:17:30 +02:00
import org.gcube.gcat.utils.Constants;
2022-03-25 18:38:26 +01:00
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class SocialMessageModerationThread extends ModerationThread {
2022-03-25 18:38:26 +01:00
private static final Logger logger = LoggerFactory.getLogger(SocialMessageModerationThread.class);
2022-03-25 18:38:26 +01:00
protected String getSubject(CMItemStatus cmItemStatus) {
StringWriter stringWriter = new StringWriter();
stringWriter.append(itemName);
2022-03-29 15:17:30 +02:00
stringWriter.append(" (id:");
2022-03-25 18:38:26 +01:00
stringWriter.append(itemID);
2022-03-29 15:17:30 +02:00
stringWriter.append(") - status:");
stringWriter.append(cmItemStatus.getFancyValue());
2022-03-25 18:38:26 +01:00
return stringWriter.toString();
}
protected Message getMessage(CMItemStatus cmItemStatus, String messageString) throws Exception {
Message message = new Message();
message.setMessage(messageString);
message.setSubject(getSubject(cmItemStatus));
Set<String> moderators = SocialUsers.getUsernamesByRole(Moderated.CATALOGUE_MODERATOR);
message.setUsers(moderators);
return message;
}
@Override
2022-03-29 15:17:30 +02:00
protected void postMessage(CMItemStatus cmItemStatus, String messageString) throws Exception {
SecretManager secretManager = SecretManagerProvider.instance.get();
String username = secretManager.getUser().getUsername();
Message message = getMessage(cmItemStatus, messageString);
message.addUser(username);
Secret secret = Constants.getCatalogueSecret();
secretManager.startSession(secret);
2022-03-31 15:49:22 +02:00
try {
sendMessage(message);
}finally {
secretManager.endSession();
}
2022-03-25 18:38:26 +01:00
}
@Override
public void postUserMessage(CMItemStatus cmItemStatus, String userMessage) throws Exception {
2022-03-29 15:17:30 +02:00
Message message = getMessage(cmItemStatus, userMessage);
String itemAuthor = ckanUser.getEMail();
message.addUser(itemAuthor);
sendMessage(message);
2022-03-25 18:38:26 +01:00
}
2022-03-29 15:17:30 +02:00
protected void sendMessage(Message message) throws Exception {
SocialMessage socialMessage = new SocialMessage();
socialMessage.setMessage(message);
socialMessage.start();
}
2022-03-25 18:38:26 +01:00
@Override
protected void createModerationThread() throws Exception {
// Nothing to do
}
}