@ -23,8 +23,7 @@ public class SocialMessageModerationThread extends ModerationThread {
private static final Logger logger = LoggerFactory . getLogger ( SocialMessageModerationThread . class ) ;
protected StringBuffer getMainItemInfo ( CMItemStatus cmItemStatus ) {
StringBuffer stringBuffer = new StringBuffer ( ) ;
protected StringBuffer getMainItemInfo ( StringBuffer stringBuffer ) {
stringBuffer . append ( "Status: " ) ;
stringBuffer . append ( cmItemStatus . getFancyValue ( ) ) ;
stringBuffer . append ( "\n" ) ;
@ -43,37 +42,48 @@ public class SocialMessageModerationThread extends ModerationThread {
return stringBuffer ;
}
public void postItemCreated ( ) throws Exception {
/ * *
* Create the message for an item that is created / updated
* /
public void postItemToBeManaged ( ) throws Exception {
/ *
* An example of created message is :
*
* [ mister x ] created / updated the following item
*
* Title : RESTful Transaction Model
* Name : my_first_restful_transaction_model
* ID : e31a6ba8 - 66 ef - 47 b8 - b61f - 99 a1366b4a69
* URL : https : //data.dev.d4science.org/ctlg/devVRE/my_first_restful_transaction_model
*
* You are kindly requested to review it and decide either to APPROVE or REJECT it at < url of the item >
*
* /
cmItemStatus = CMItemStatus . PENDING ;
String fullName = ckanUser . getNameSurname ( ) ;
CMItemStatus cmItemStatus = CMItemStatus . PENDING ;
StringBuffer stringBuffer = getMainItemInfo ( cmItemStatus ) ;
stringBuffer . append ( "Message:\n" ) ;
StringBuffer stringBuffer = new StringBuffer ( ) ;
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 ( ) ) ;
stringBuffer . append ( create ? " created " : " updated " ) ;
stringBuffer . append ( "the following item\n\n" ) ;
stringBuffer = getMainItemInfo ( stringBuffer ) ;
stringBuffer . append ( "You are kindly requested to review it and decide either to APPROVE or REJECT it." ) ;
// stringBuffer.append("You are kindly requested to review it and decide either to APPROVE or REJECT at");
// String manageURL = getManageURL();
// stringBuffer.append(manageURL);
postMessage ( stringBuffer . toString ( ) ) ;
}
public void postItemCreated ( ) throws Exception {
create = true ;
cmItemStatus = CMItemStatus . PENDING ;
postItemToBeManaged ( ) ;
}
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 ( ) ) ;
create = false ;
cmItemStatus = CMItemStatus . PENDING ;
postItemToBeManaged ( ) ;
}
protected StringBuffer addUserWithRole ( String fullName , String role , StringBuffer stringBuffer ) {
@ -84,80 +94,63 @@ public class SocialMessageModerationThread extends ModerationThread {
return stringBuffer ;
}
public void postItemRejected ( String userMessage ) throws Exception {
public void postItemManaged ( String userMessage ) throws Exception {
create = false ;
String fullName = ckanUser . getNameSurname ( ) ;
CMItemStatus cmItemStatus = CMItemStatus . REJECTED ;
StringBuffer stringBuffer = getMainItemInfo ( cmItemStatus ) ;
stringBuffer . append ( "Message:\n" ) ;
StringBuffer stringBuffer = new StringBuffer ( ) ;
stringBuffer = addUserWithRole ( fullName , Moderated . CATALOGUE_MODERATOR , stringBuffer ) ;
stringBuffer . append ( "rejected '" ) ;
stringBuffer . append ( itemTitle ) ;
stringBuffer . append ( "'." ) ;
stringBuffer . append ( " The author can delete or update it." ) ;
stringBuffer . append ( cmItemStatus . getValue ( ) ) ;
stringBuffer . append ( " the following item" ) ;
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 ( " with this accompanying message\n\n" ) ;
stringBuffer = getMainItemInfo ( stringBuffer ) ;
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 ) {
} else {
stringBuffer . append ( "\n\n" ) ;
stringBuffer = addUserWithRole ( fullName , Moderated . CATALOGUE_MODERATOR , stringBuffer ) ;
stringBuffer . append ( "added the following comment:\n" ) ;
stringBuffer . append ( userMessage ) ;
stringBuffer = getMainItemInfo ( stringBuffer ) ;
}
postMessage ( cmItemStatus , stringBuffer . toString ( ) ) ;
postMessage ( stringBuffer . toString ( ) ) ;
}
@Override
public void postItemRejected ( String userMessage ) throws Exception {
create = false ;
cmItemStatus = CMItemStatus . REJECTED ;
postItemManaged ( userMessage ) ;
}
@Override
public void postItemApproved ( String userMessage ) throws Exception {
create = false ;
cmItemStatus = CMItemStatus . APPROVED ;
postItemManaged ( userMessage ) ;
}
protected String getSubject ( CMItemStatus cmItemStatus ) {
protected String getSubject ( ) {
StringWriter stringWriter = new StringWriter ( ) ;
if ( ! create ) {
logger . trace ( "It's a reply" ) ;
stringWriter . append ( "Re: [Catalogue Service] " ) ;
}
stringWriter . append ( "[Catalogue Service] " ) ;
stringWriter . append ( itemTitle ) ;
stringWriter . append ( " (name:" ) ;
stringWriter . append ( itemName ) ;
stringWriter . append ( " - id:" ) ;
stringWriter . append ( itemID ) ;
stringWriter . append ( ")" ) ;
return stringWriter . toString ( ) ;
}
protected Message getMessage ( CMItemStatus cmItemStatus , String messageString ) throws Exception {
protected Message getMessage ( String messageString ) throws Exception {
Message message = new Message ( ) ;
message . setMessage ( messageString ) ;
message . setSubject ( getSubject ( cmItemStatus ) ) ;
message . setSubject ( getSubject ( ) ) ;
Set < String > moderators = SocialUsers . getUsernamesByRole ( Moderated . CATALOGUE_MODERATOR ) ;
message . setUsers ( moderators ) ;
return message ;
}
@Override
protected void postMessage ( CMItemStatus cmItemStatus , String messageString ) throws Exception {
protected void postMessage ( String messageString ) throws Exception {
SecretManager secretManager = SecretManagerProvider . instance . get ( ) ;
String username = secretManager . getUser ( ) . getUsername ( ) ;
Message message = getMessage ( cmItemStatus, messageString) ;
Message message = getMessage ( messageString) ;
message . addUser ( username ) ;
Secret secret = Constants . getCatalogueSecret ( ) ;
secretManager . startSession ( secret ) ;
@ -170,12 +163,15 @@ public class SocialMessageModerationThread extends ModerationThread {
@Override
public void postUserMessage ( CMItemStatus cmItemStatus , String userMessage ) throws Exception {
this . create = false ;
this . cmItemStatus = cmItemStatus ;
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 stringBuffer = new StringBuffer ( ) ;
stringBuffer = addUserWithRole ( fullName , itemAuthor ? "Author" : Moderated . CATALOGUE_MODERATOR , stringBuffer ) ;
stringBuffer . append ( "sent a message regarding the following item\n\n" ) ;
stringBuffer = getMainItemInfo ( stringBuffer ) ;
stringBuffer . append ( userMessage ) ;
Message message = getMessage ( cmItemStatus, stringBuffer. toString ( ) ) ;
Message message = getMessage ( stringBuffer. toString ( ) ) ;
SecretManager secretManager = SecretManagerProvider . instance . get ( ) ;
String username = secretManager . getUser ( ) . getUsername ( ) ;
message . addUser ( username ) ;
@ -193,10 +189,11 @@ public class SocialMessageModerationThread extends ModerationThread {
socialMessage . setMessage ( message ) ;
socialMessage . start ( ) ;
}
@Override
protected void createModerationThread ( ) throws Exception {
// Nothing to do
create = true ;
cmItemStatus = CMItemStatus . PENDING ;
}
}