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 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 } }