in progress

This commit is contained in:
Francesco Mangiacrapa 2024-03-20 17:04:43 +01:00
parent 6c26aa65cc
commit e08c03cd04
4 changed files with 187 additions and 0 deletions

View File

@ -0,0 +1,17 @@
package org.gcube.application.cms.notifications;
public class NotificationGenericConstants {
public static enum CUSTOM_TARGET_PHASE {
Any
};
public static enum CUSTOM_USER_ROLES {
Item_Creator, Any
};
public static enum NOTIFICATION_TYPE {
USER_POST, EMAIL, VRE_POST
};
}

View File

@ -0,0 +1,14 @@
package org.gcube.application.cms.notifications.config;
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ExportAsPDF {
Boolean export;
String placeholder_msg;
}

View File

@ -0,0 +1,94 @@
package org.gcube.application.cms.notifications.social;
import java.util.ArrayList;
import java.util.List;
import org.gcube.portal.databook.shared.Post;
import org.gcube.social_networking.social_networking_client_library.MessageClient;
import org.gcube.social_networking.social_networking_client_library.PostClient;
import org.gcube.social_networking.social_networking_client_library.UserClient;
import org.gcube.social_networking.socialnetworking.model.beans.MessageInputBean;
import org.gcube.social_networking.socialnetworking.model.beans.PostInputBean;
import lombok.extern.slf4j.Slf4j;
/**
* The Class SocialClients.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Mar 20, 2024
*/
@Slf4j
public class SocialClients {
private PostClient postClient;
private MessageClient messagesClient;
private UserClient userClient;
/**
* Instantiates a new social util.
*/
public SocialClients() {
try {
this.postClient = new PostClient();
} catch (Exception e) {
log.error("Error on instacing {}: ", PostClient.class.getSimpleName(), e);
}
try {
this.messagesClient = new MessageClient();
} catch (Exception e) {
log.error("Error on instacing {}: ", MessageClient.class.getSimpleName(), e);
}
try {
this.userClient = new UserClient();
} catch (Exception e) {
log.error("Error on instacing {}: ", UserClient.class.getSimpleName(), e);
}
}
/**
* Gets the usernames by role.
*
* @param roleName the role name
* @return the usernames by role
* @throws Exception the exception
*/
public List<String> getUsernamesByRole(String roleName) throws Exception {
return new ArrayList<String>(userClient.getAllUsernamesByRole(roleName));
}
/**
* Gets the usernames by scope.
*
* @return the usernames by scope
* @throws Exception the exception
*/
public List<String> getUsernamesByScope() throws Exception {
return new ArrayList<String>(userClient.getAllUsernamesContext());
}
/**
* Write message.
*
* @param msg the msg
* @return the string
* @throws Exception the exception
*/
public String writeMessage(MessageInputBean msg) throws Exception {
return messagesClient.writeMessage(msg);
}
/**
* Write user post.
*
* @param toWrite the to write
* @return the post
*/
public Post writeUserPost(PostInputBean toWrite) {
return postClient.writeUserPost(toWrite);
}
}

View File

@ -0,0 +1,62 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.apache.commons.text.StringSubstitutor;
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
import org.junit.Test;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class StringReplacerTest {
public static String NOTIFICATION_MESSAGE_FILE_PATH = String.format("%s%s",
System.getProperty("user.dir"), "/src/test/resources/Notifications_Messages.properties");
public static final List<String> PLACEHOLDERS = Arrays.asList("MSG_MODERATION_REQUIRED", "MSG_ITEM_REJECTED",
"MSG_ITEM_REJECTED_REVIEW_REQUIRED", "MSG_ITEM_PUBLISHED");
public static String USERNAME = "francesco.mangiacrapa";
public static String PROJECT_NAME = "\"My Great Project\"";
public static String GIS_LINK = "https://my_gis_link";
@Test
public void checkReplace() {
org.junit.Assume.assumeTrue(GCubeTest.isTestInfrastructureEnabled());
if (GCubeTest.isTestInfrastructureEnabled()) {
Map<String, String> valuesMap = new HashMap<>();
valuesMap.put("user", USERNAME);
valuesMap.put("project_name", PROJECT_NAME);
valuesMap.put("gis_link", GIS_LINK);
// Build StringSubstitutor
StringSubstitutor sub = new StringSubstitutor(valuesMap);
try (InputStream input = new FileInputStream(NOTIFICATION_MESSAGE_FILE_PATH)) {
Properties prop = new Properties();
// load a properties file
prop.load(input);
for (String placeholder : PLACEHOLDERS) {
log.info("placeholder: {}", placeholder);
String templateString = prop.getProperty(placeholder);
log.info("templateString: {}", templateString);
// Replace
String resolvedString = sub.replace(templateString);
log.info("resolvedString: {}", resolvedString);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}