@ -23,13 +23,124 @@ public class SocialMessageModerationThread extends ModerationThread {
private static final Logger logger = LoggerFactory . getLogger ( SocialMessageModerationThread . class ) ;
protected StringBuffer getMainItemInfo ( CMItemStatus cmItemStatus ) {
StringBuffer stringBuffer = new StringBuffer ( ) ;
stringBuffer . append ( "Status: " ) ;
stringBuffer . append ( cmItemStatus . getFancyValue ( ) ) ;
stringBuffer . append ( "\n" ) ;
stringBuffer . append ( "Title: " ) ;
stringBuffer . append ( itemTitle ) ;
stringBuffer . append ( "\n" ) ;
stringBuffer . append ( "Name: " ) ;
stringBuffer . append ( itemName ) ;
stringBuffer . append ( "\n" ) ;
stringBuffer . append ( "ID: " ) ;
stringBuffer . append ( itemID ) ;
stringBuffer . append ( "\n" ) ;
stringBuffer . append ( "URL: " ) ;
stringBuffer . append ( itemURL ) ;
stringBuffer . append ( "\n\n" ) ;
return stringBuffer ;
}
public void postItemCreated ( ) throws Exception {
String fullName = ckanUser . getNameSurname ( ) ;
CMItemStatus cmItemStatus = CMItemStatus . PENDING ;
StringBuffer stringBuffer = getMainItemInfo ( cmItemStatus ) ;
stringBuffer . append ( "Message:\n" ) ;
stringBuffer . append ( fullName ) ;
stringBuffer . append ( " created '" ) ;
stringBuffer . append ( itemTitle ) ;
stringBuffer . append ( "'. It is now in " ) ;
stringBuffer . append ( cmItemStatus . getFancyValue ( ) ) ;
stringBuffer . append ( " state and must be moderated." ) ;
postMessage ( cmItemStatus , stringBuffer . toString ( ) ) ;
}
public void postItemUpdated ( ) throws Exception {
String fullName = ckanUser . getNameSurname ( ) ;
CMItemStatus cmItemStatus = CMItemStatus . PENDING ;
StringBuffer stringBuffer = getMainItemInfo ( cmItemStatus ) ;
stringBuffer . append ( "Message:\n" ) ;
stringBuffer . append ( fullName ) ;
stringBuffer . append ( " updated '" ) ;
stringBuffer . append ( itemTitle ) ;
stringBuffer . append ( "'. It is now in " ) ;
stringBuffer . append ( cmItemStatus . getFancyValue ( ) ) ;
stringBuffer . append ( " state and must be moderated." ) ;
postMessage ( cmItemStatus , stringBuffer . toString ( ) ) ;
}
protected StringBuffer addUserWithRole ( String fullName , String role , StringBuffer stringBuffer ) {
stringBuffer . append ( fullName ) ;
stringBuffer . append ( " [" ) ;
stringBuffer . append ( role ) ;
stringBuffer . append ( "] " ) ;
return stringBuffer ;
}
public void postItemRejected ( String userMessage ) throws Exception {
String fullName = ckanUser . getNameSurname ( ) ;
CMItemStatus cmItemStatus = CMItemStatus . REJECTED ;
StringBuffer stringBuffer = getMainItemInfo ( cmItemStatus ) ;
stringBuffer . append ( "Message:\n" ) ;
stringBuffer = addUserWithRole ( fullName , Moderated . CATALOGUE_MODERATOR , stringBuffer ) ;
stringBuffer . append ( "rejected '" ) ;
stringBuffer . append ( itemTitle ) ;
stringBuffer . append ( "'." ) ;
stringBuffer . append ( " The author can delete or update it." ) ;
if ( userMessage ! = null & & userMessage . length ( ) > 0 ) {
stringBuffer . append ( "\n\n" ) ;
stringBuffer = addUserWithRole ( fullName , Moderated . CATALOGUE_MODERATOR , stringBuffer ) ;
stringBuffer . append ( "added the following comment:\n" ) ;
stringBuffer . append ( userMessage ) ;
}
postMessage ( cmItemStatus , stringBuffer . toString ( ) ) ;
}
public void postItemApproved ( String userMessage ) throws Exception {
String fullName = ckanUser . getNameSurname ( ) ;
CMItemStatus cmItemStatus = CMItemStatus . APPROVED ;
StringBuffer stringBuffer = getMainItemInfo ( cmItemStatus ) ;
stringBuffer . append ( "Message:\n" ) ;
stringBuffer = addUserWithRole ( fullName , Moderated . CATALOGUE_MODERATOR , stringBuffer ) ;
stringBuffer . append ( "approved the '" ) ;
stringBuffer . append ( itemTitle ) ;
stringBuffer . append ( "'." ) ;
stringBuffer . append ( " It is now available in the catalogue at " ) ;
stringBuffer . append ( itemURL ) ;
if ( userMessage ! = null & & userMessage . length ( ) > 0 ) {
stringBuffer . append ( "\n\n" ) ;
stringBuffer = addUserWithRole ( fullName , Moderated . CATALOGUE_MODERATOR , stringBuffer ) ;
stringBuffer . append ( "added the following comment:\n" ) ;
stringBuffer . append ( userMessage ) ;
}
postMessage ( cmItemStatus , stringBuffer . toString ( ) ) ;
}
protected String getSubject ( CMItemStatus cmItemStatus ) {
StringWriter stringWriter = new StringWriter ( ) ;
stringWriter . append ( "[Catalogue Service] " ) ;
stringWriter . append ( itemTitle ) ;
stringWriter . append ( " (name:" ) ;
stringWriter . append ( itemName ) ;
stringWriter . append ( " (id:" ) ;
stringWriter . append ( " - id:") ;
stringWriter . append ( itemID ) ;
stringWriter . append ( ") - status:" ) ;
stringWriter . append ( cmItemStatus . getFancyValue ( ) ) ;
stringWriter . append ( ")" ) ;
return stringWriter . toString ( ) ;
}
@ -59,10 +170,22 @@ public class SocialMessageModerationThread extends ModerationThread {
@Override
public void postUserMessage ( CMItemStatus cmItemStatus , String userMessage ) throws Exception {
Message message = getMessage ( cmItemStatus , userMessage ) ;
String itemAuthor = ckanUser . getEMail ( ) ;
message . addUser ( itemAuthor ) ;
sendMessage ( message ) ;
String fullName = ckanUser . getNameSurname ( ) ;
StringBuffer stringBuffer = getMainItemInfo ( cmItemStatus ) ;
stringBuffer = addUserWithRole ( fullName , isItemAuthor ( ) ? "Author" : Moderated . CATALOGUE_MODERATOR , stringBuffer ) ;
stringBuffer . append ( "sent the following comment:\n" ) ;
stringBuffer . append ( userMessage ) ;
Message message = getMessage ( cmItemStatus , stringBuffer . toString ( ) ) ;
SecretManager secretManager = SecretManagerProvider . instance . get ( ) ;
String username = secretManager . getUser ( ) . getUsername ( ) ;
message . addUser ( username ) ;
Secret secret = Constants . getCatalogueSecret ( ) ;
secretManager . startSession ( secret ) ;
try {
sendMessage ( message ) ;
} finally {
secretManager . endSession ( ) ;
}
}
protected void sendMessage ( Message message ) throws Exception {