email-templates-library/src/main/java/org/gcube/portal/mailing/templates/TemplatedJoinMeInvite.java

71 lines
32 KiB
Java
Raw Normal View History

package org.gcube.portal.mailing.templates;
import java.util.Base64;
import org.gcube.common.portal.mailing.templates.AbstractTemplate;
import org.gcube.common.portal.mailing.templates.Template;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
/**
*
* @author Massimiliano Assante, CNR-ISTI
*
*/
public class TemplatedJoinMeInvite extends AbstractTemplate implements Template {
private final String encodedTemplateHTML = "PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KICAgIDxoZWFkPg0KICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4NCiAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCIgLz4NCiAgICAgICAgPHRpdGxlPlRpdGxlPC90aXRsZT4NCiAgICA8L2hlYWQ+DQogICAgPGJvZHkNCiAgICAgICAgc3R5bGU9Ii1tb3otYm94LXNpemluZzpib3JkZXItYm94Oy1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCU7TWFyZ2luOjA7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiMwYTBhMGE7Zm9udC1mYW1pbHk6SGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuMzttYXJnaW46MDttaW4td2lkdGg6MTAwJTtwYWRkaW5nOjA7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwMCUhaW1wb3J0YW50Ij4NCiAgICAgICAgPHN0eWxlPkBtZWRpYSBvbmx5IHNjcmVlbntodG1se21pbi1oZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiNmM2YzZjN9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1OTZweCl7LnNtYWxsLWZsb2F0LWNlbnRlcnttYXJnaW46MCBhdXRvIWltcG9ydGFudDtmbG9hdDpub25lIWltcG9ydGFudDt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9LnNtYWxsLXRleHQtY2VudGVye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH0uc21hbGwtdGV4dC1sZWZ0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9LnNtYWxsLXRleHQtcmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1OTZweCl7LmhpZGUtZm9yLWxhcmdle2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3dpZHRoOmF1dG8haW1wb3J0YW50O292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50O21heC1oZWlnaHQ6bm9uZSFpbXBvcnRhbnQ7Zm9udC1zaXplOmluaGVyaXQhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OmluaGVyaXQhaW1wb3J0YW50fX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTk2cHgpe3RhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5oaWRlLWZvci1sYXJnZSx0YWJsZS5ib2R5IHRhYmxlLmNvbnRhaW5lciAucm93LmhpZGUtZm9yLWxhcmdle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50O3dpZHRoOjEwMCUhaW1wb3J0YW50fX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTk2cHgpe3RhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5jYWxsb3V0LWlubmVyLmhpZGUtZm9yLWxhcmdle2Rpc3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnQ7d2lkdGg6MTAwJSFpbXBvcnRhbnR9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1OTZweCl7dGFibGUuYm9keSB0YWJsZS5jb250YWluZXIgLnNob3ctZm9yLWxhcmdle2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7d2lkdGg6MDttc28taGlkZTphbGw7b3ZlcmZsb3c6aGlkZGVufX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTk2cHgpe3RhYmxlLmJvZHkgaW1ne3dpZHRoOmF1dG87aGVpZ2h0OmF1dG99dGFibGUuYm9keSBjZW50ZXJ7bWluLXdpZHRoOjAhaW1wb3J0YW50fXRhYmxlLmJvZHkgLmNvbnRhaW5lcnt3aWR0aDo5NSUhaW1wb3J0YW50fXRhYmxlLmJvZHkgLmNvbHVtbix0YWJsZS5ib2R5IC5jb2x1bW5ze2hlaWdodDphdXRvIWltcG9ydGFudDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZy1sZWZ0OjE2cHghaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6MTZweCFpbXBvcnRhbnR9dGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW4sdGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW5zLHRhYmxlLmJvZHkgLmNvbHVtbnMgLmNvbHVtbix0YWJsZS5ib2R5IC5jb2x1bW5zIC5jb2x1bW5ze3BhZGRpbmctbGVmdDowIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fXRhYmxlLmJvZHkgLmNvbGxhcHNlIC5jb2x1bW4sdGFibGUuYm9keSAuY29sbGFwc2UgLmNvbHVtbnN7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnR9dGQuc21hbGwtMSx0aC5zbWFsbC0xe2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDt3aWR0aDo4LjMzMzMzJSFpbXBvcnRhbnR9dGQuc21hbGwtMix0aC5zbWFsbC0ye2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDt3aWR0aDoxNi42NjY2NyUhaW1wb3J0YW50fXRkLnNtYWxsLTMsdGguc21hbGwtM3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7d2lkdGg6MjUlIWltcG9ydGFudH10ZC5zbWFsbC00LHRoLnNtYWxsLTR7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O3dpZHRoOjMzLjMzMzMzJSFpbXBvcnRhbnR9dGQuc21hbGwtNSx0aC5zbWFsbC01e2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDt3aWR0aDo0MS42NjY2NyUhaW1wb3J0YW50fXRkLnNtYWxsLTYsdGguc21hbGwtNntkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7d2lkdGg6NTAlIWltcG9ydGFudH10ZC5zbWFsbC03LHRoLnNtYWxsLTd7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O3dpZHRoOjU4LjMzMzMzJSFpbXBvcnRhbnR9dGQuc21hbGwtOCx0aC5zbWFsbC04e2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudDt3aWR0aDo2Ni42NjY2NyUhaW1wb3J0YW50fXRkLnNtYWxsLTksdGguc21hbGwtOXtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnQ7d2lkdGg6Nz
private final String encodedTemplateTEXT = "e3tHQVRFV0FZX05BTUV9fQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSGkge3tJTlZJVEVEX1VTRVJfTkFNRX19LA0Ke3tJTlZJVElOR19VU0VSX0ZVTExOQU1FfX0gaGFzIGludml0ZWQgeW91IHRvIHt7U0VMRUNURURfVlJFX05BTUV9fSwgeW91IGNhbiBmaW5kIGEgYnJpZWYgZGVzY3JpcHRpb24gYmVsb3c6DQoNCnt7U0VMRUNURURfVlJFX0RFU0NSSVBUSU9OfX0NCg0KVG8gYWNjZXB0IHRoZSBpbnZpdGUganVzdCBmb2xsb3cgdGhpcyBsaW5rOiB7e0FDQ0VQVF9JTlZJVEVfVVJMfX0=";
private GCubeUser theInvitingUser;
private String theUserInvitedName;
private String theVREName;
private String theVREDescription;
private String acceptInviteURL;
/**
*
* @param gatewayName
* @param gatewayURL
* @param theInvitingUser
* @param theUserInvitedName
* @param theVRE
* @param acceptInviteURL
* @param signUpURL
*/
public TemplatedJoinMeInvite(String gatewayName, String gatewayURL, GCubeUser theInvitingUser,
String theUserInvitedName, String theVREName, String theVREDescription, String acceptInviteURL) {
super(gatewayName, gatewayURL);
this.theInvitingUser = theInvitingUser;
this.theUserInvitedName = theUserInvitedName;
this.theVREName = theVREName;
this.theVREDescription = theVREDescription;
this.acceptInviteURL = acceptInviteURL;
}
@Override
public String compile(String templateContent) {
String userAvatarURL = getGatewayURL()+this.theInvitingUser.getUserAvatarURL();
return new String(Base64.getDecoder().decode(templateContent))
.replace("{{SELECTED_VRE_NAME}}", theVREName)
.replace("{{INVITING_USER_AVATAR_URL}}", userAvatarURL)
.replace("{{INVITING_USER_FULLNAME}}", theInvitingUser.getFullname())
.replace("{{INVITED_USER_NAME}}", this.theUserInvitedName)
.replace("{{SELECTED_VRE_DESCRIPTION}}", theVREDescription)
.replace("{{GATEWAY_LOGO:URL}}", getGatewayLogoURL())
.replace("{{GATEWAY_URL}}", getGatewayURL())
.replace("{{GATEWAY_NAME}}", getGatewayName())
.replace("{{ACCEPT_INVITE_URL}}", acceptInviteURL);
}
@Override
public String getTextHTML() {
return compile(encodedTemplateHTML);
}
@Override
public String getTextPLAIN() {
return compile(encodedTemplateTEXT);
}
}