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

71 lines
28 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 = "PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+DQoJPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+DQoJCTx0aXRsZT5UaXRsZTwvdGl0bGU+DQo8L2hlYWQ+DQo8Ym9keQ0KCXN0eWxlPSItbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgTWFyZ2luOiAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWlnaHQ6IDQwMDsgbGluZS1oZWlnaHQ6IDEuMzsgbWFyZ2luOiAwOyBtaW4td2lkdGg6IDEwMCU7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQiPg0KCTxzdHlsZT4NCkBtZWRpYSBvbmx5IHNjcmVlbiB7DQoJaHRtbCB7DQoJCW1pbi1oZWlnaHQ6IDEwMCU7DQoJCWJhY2tncm91bmQ6ICNmM2YzZjMNCgl9DQp9DQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1OTZweCkgew0KCS5zbWFsbC1mbG9hdC1jZW50ZXIgew0KCQltYXJnaW46IDAgYXV0byAhaW1wb3J0YW50Ow0KCQlmbG9hdDogbm9uZSAhaW1wb3J0YW50Ow0KCQl0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudA0KCX0NCgkuc21hbGwtdGV4dC1jZW50ZXIgew0KCQl0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudA0KCX0NCgkuc21hbGwtdGV4dC1sZWZ0IHsNCgkJdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50DQoJfQ0KCS5zbWFsbC10ZXh0LXJpZ2h0IHsNCgkJdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudA0KCX0NCn0NCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU5NnB4KSB7DQoJLmhpZGUtZm9yLWxhcmdlIHsNCgkJZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsNCgkJd2lkdGg6IGF1dG8gIWltcG9ydGFudDsNCgkJb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDsNCgkJbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50Ow0KCQlmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDsNCgkJbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudA0KCX0NCn0NCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU5NnB4KSB7DQoJdGFibGUuYm9keSB0YWJsZS5jb250YWluZXIgLmhpZGUtZm9yLWxhcmdlLCB0YWJsZS5ib2R5IHRhYmxlLmNvbnRhaW5lciAucm93LmhpZGUtZm9yLWxhcmdlDQoJCXsNCgkJZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsNCgkJd2lkdGg6IDEwMCUgIWltcG9ydGFudA0KCX0NCn0NCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU5NnB4KSB7DQoJdGFibGUuYm9keSB0YWJsZS5jb250YWluZXIgLmNhbGxvdXQtaW5uZXIuaGlkZS1mb3ItbGFyZ2Ugew0KCQlkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiAxMDAlICFpbXBvcnRhbnQNCgl9DQp9DQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1OTZweCkgew0KCXRhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5zaG93LWZvci1sYXJnZSB7DQoJCWRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsNCgkJd2lkdGg6IDA7DQoJCW1zby1oaWRlOiBhbGw7DQoJCW92ZXJmbG93OiBoaWRkZW4NCgl9DQp9DQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo1OTZweCkgew0KCXRhYmxlLmJvZHkgaW1nIHsNCgkJd2lkdGg6IGF1dG87DQoJCWhlaWdodDogYXV0bw0KCX0NCgl0YWJsZS5ib2R5IGNlbnRlciB7DQoJCW1pbi13aWR0aDogMCAhaW1wb3J0YW50DQoJfQ0KCXRhYmxlLmJvZHkgLmNvbnRhaW5lciB7DQoJCXdpZHRoOiA5NSUgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5ib2R5IC5jb2x1bW4sIHRhYmxlLmJvZHkgLmNvbHVtbnMgew0KCQloZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsNCgkJLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KCQktd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7DQoJCWJveC1zaXppbmc6IGJvcmRlci1ib3g7DQoJCXBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50Ow0KCQlwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQNCgl9DQoJdGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW4sIHRhYmxlLmJvZHkgLmNvbHVtbiAuY29sdW1ucywgdGFibGUuYm9keSAuY29sdW1ucyAuY29sdW1uLA0KCQl0YWJsZS5ib2R5IC5jb2x1bW5zIC5jb2x1bW5zIHsNCgkJcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7DQoJCXBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudA0KCX0NCgl0YWJsZS5ib2R5IC5jb2xsYXBzZSAuY29sdW1uLCB0YWJsZS5ib2R5IC5jb2xsYXBzZSAuY29sdW1ucyB7DQoJCXBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50Ow0KCQlwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQNCgl9DQoJdGQuc21hbGwtMSwgdGguc21hbGwtMSB7DQoJCWRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50Ow0KCQl3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC0yLCB0aC5zbWFsbC0yIHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC0zLCB0aC5zbWFsbC0zIHsNCgkJZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7DQoJCXdpZHRoOiAyNSUgIWltcG9ydGFudA0KCX0NCgl0ZC5zbWFsbC00LCB0aC5zbWFsbC00IHsNCgkJZGlzcGxheT
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);
}
}