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

74 lines
30 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 = "PCEtLSBJbmxpbmVyIEJ1aWxkIFZlcnNpb24gNDM4MGI3NzQxYmI3NTlkNmNiOTk3NTQ1ZjNhZGQyMWFkNDhmMDEwYiAtLT4NCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9Im1pbi1oZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjMgIWltcG9ydGFudDsiPg0KICA8aGVhZD4NCiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4NCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIiAvPg0KICAgIDx0aXRsZT5UaXRsZTwvdGl0bGU+DQogIDwvaGVhZD4NCiAgPGJvZHkgc3R5bGU9IndpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IG1pbi13aWR0aDogMTAwJTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDEuMzsgZm9udC1zaXplOiAxNnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzICFpbXBvcnRhbnQ7IG1hcmdpbjogMDsgcGFkZGluZzogMDsiIGJnY29sb3I9IiNmM2YzZjMgIWltcG9ydGFudCI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk2cHgpIHsNCiAgLnNtYWxsLWZsb2F0LWNlbnRlciB7DQogICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7DQogIH0NCiAgLnNtYWxsLXRleHQtY2VudGVyIHsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsNCiAgfQ0KICAuc21hbGwtdGV4dC1sZWZ0IHsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7DQogIH0NCiAgLnNtYWxsLXRleHQtcmlnaHQgew0KICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7DQogIH0NCiAgLmhpZGUtZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB3aWR0aDogYXV0byAhaW1wb3J0YW50OyBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5oaWRlLWZvci1sYXJnZSB7DQogICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRhYmxlLmNvbnRhaW5lciAucm93LmhpZGUtZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB3aWR0aDogMTAwJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5jYWxsb3V0LWlubmVyLmhpZGUtZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSB0YWJsZS5jb250YWluZXIgLnNob3ctZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IHdpZHRoOiAwOyBtc28taGlkZTogYWxsOyBvdmVyZmxvdzogaGlkZGVuOw0KICB9DQogIHRhYmxlLmJvZHkgaW1nIHsNCiAgICB3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvOw0KICB9DQogIHRhYmxlLmJvZHkgY2VudGVyIHsNCiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IC5jb250YWluZXIgew0KICAgIHdpZHRoOiA5NSUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IC5jb2x1bW5zIHsNCiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1uIHsNCiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1ucyAuY29sdW1uIHsNCiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgLmNvbHVtbnMgLmNvbHVtbnMgew0KICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW4gew0KICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW5zIHsNCiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgLmNvbGxhcHNlIC5jb2x1bW5zIHsNCiAgICBwYWRkaW5nLWxlZnQ6ID
private final String encodedTemplateTEXT = "e3tHQVRFV0FZX05BTUV9fQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSGkge3tJTlZJVEVEX1VTRVJfTkFNRX19LA0Ke3tJTlZJVElOR19VU0VSX0ZVTExOQU1FfX0gaGFzIGludml0ZWQgeW91IHRvIHt7U0VMRUNURURfVlJFX05BTUV9fSwgeW91IGNhbiBmaW5kIGEgYnJpZWYgZGVzY3JpcHRpb24gYmVsb3c6DQoNCnt7U0VMRUNURURfVlJFX0RFU0NSSVBUSU9OfX0NCg0KVG8gYWNjZXB0IHRoZSBpbnZpdGUganVzdCBmb2xsb3cgdGhpcyBsaW5rOiB7e0FDQ0VQVF9JTlZJVEVfVVJMfX0NCg0KUGxlYXNlIG5vdGU6IGlmIHlvdSBkbyBub3QgaGF2ZSBhbiBhY2NvdW50IHlldCwgc2lnbiB1cCBmaXJzdDoge3tDUkVBVEVfQUNDT1VOVF9VUkx9fQ==";
private GCubeUser theInvitingUser;
private String theUserInvitedName;
private String theVREName;
private String theVREDescription;
private String acceptInviteURL;
private String signUpURL;
/**
*
* @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, String signUpURL) {
super(gatewayName, gatewayURL);
this.theInvitingUser = theInvitingUser;
this.theUserInvitedName = theUserInvitedName;
this.theVREName = theVREName;
this.theVREDescription = theVREDescription;
this.acceptInviteURL = acceptInviteURL;
this.signUpURL = signUpURL;
}
@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)
.replace("{{CREATE_ACCOUNT_URL}}", signUpURL);
}
@Override
public String getTextHTML() {
return compile(encodedTemplateHTML);
}
@Override
public String getTextPLAIN() {
return compile(encodedTemplateTEXT);
}
}