gcat/src/main/java/org/gcube/gcat/moderation/thread/MessageModerationThread.java

62 lines
1.8 KiB
Java

package org.gcube.gcat.moderation.thread;
import java.io.StringWriter;
import java.util.Set;
import org.gcube.common.authorization.utils.manager.SecretManagerProvider;
import org.gcube.gcat.api.moderation.CMItemStatus;
import org.gcube.gcat.api.moderation.Moderated;
import org.gcube.gcat.social.Message;
import org.gcube.gcat.social.SocialUsers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class MessageModerationThread extends ModerationThread {
private static final Logger logger = LoggerFactory.getLogger(MessageModerationThread.class);
protected String getSubject(CMItemStatus cmItemStatus) {
StringWriter stringWriter = new StringWriter();
stringWriter.append(cmItemStatus.getFancyValue());
stringWriter.append(itemName);
stringWriter.append(itemID);
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
protected void postMessage(CMItemStatus cmItemStatus, String message) throws Exception {
}
@Override
public void postUserMessage(CMItemStatus cmItemStatus, String userMessage) throws Exception {
logger.info("{} is sending a message to the {} for item '{}' (id={}). ItemStatus={}, Message=\"{}\"",
SecretManagerProvider.instance.get().getUser().getUsername(),
ModerationThread.class.getSimpleName(), itemName, itemID, cmItemStatus, userMessage);
}
@Override
protected void createModerationThread() throws Exception {
// Nothing to do
}
}