This is an automated email from the git hooks/post-receive script. New commit to branch feature/Notification in repository pollen. See http://git.chorem.org/pollen.git commit 3ca0e13c407a12fca8feffbb276548c9dd535e8b Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Mon Aug 25 17:15:30 2014 +0200 add UI URL render --- .../src/main/resources/pollen-rest-api.properties | 6 ++ .../services/config/PollenServiceConfig.java | 27 ++++++++ .../services/config/PollenServiceConfigOption.java | 28 +++++++- .../services/service/PollenServiceSupport.java | 4 ++ .../services/service/PollenUIUrlRenderService.java | 77 +++++++++++++++++++++ .../service/PollenUIUrlRenderServiceTest.java | 79 ++++++++++++++++++++++ .../src/test/resources/pollen-services.properties | 5 ++ 7 files changed, 225 insertions(+), 1 deletion(-) diff --git a/pollen-rest-api/src/main/resources/pollen-rest-api.properties b/pollen-rest-api/src/main/resources/pollen-rest-api.properties index 80bb25e..4a49dbc 100644 --- a/pollen-rest-api/src/main/resources/pollen-rest-api.properties +++ b/pollen-rest-api/src/main/resources/pollen-rest-api.properties @@ -25,3 +25,9 @@ hibernate.connection.password=sa hibernate.connection.driver_class=org.h2.Driver hibernate.hbm2ddl.auto=update pollen.version=${project.version} +pollen.ui.host=http://localhost +pollen.ui.url.poll.edit=${pollen.ui.host}/#/poll/edit/{pollId}/{pollToken} +pollen.ui.url.poll.vote=${pollen.ui.host}/#/poll/vote/{pollId}/{pollToken} +pollen.ui.url.poll.vote.edit=${pollen.ui.url.poll.vote}/vote/{voteToken} +#pollen.ui.url.user.forgotPassword=${pollen.ui.host}/#/user/{userId}/{token} +pollen.ui.url.user.validate=${pollen.ui.host}/#/user/{userId}/{token} \ No newline at end of file diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java index bf52f86..f1f6e78 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfig.java @@ -34,12 +34,15 @@ import org.chorem.pollen.persistence.entity.CommentVisibility; import org.chorem.pollen.persistence.entity.PollType; import org.chorem.pollen.persistence.entity.ResultVisibility; import org.chorem.pollen.persistence.entity.VoteVisibility; +import org.chorem.pollen.services.PollenApplicationContext; +import org.chorem.pollen.services.PollenService; import org.chorem.pollen.services.PollenTechnicalException; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ArgumentsParserException; import org.nuiton.util.version.Version; import java.io.File; +import java.net.URL; import java.util.List; import java.util.Map; import java.util.Properties; @@ -229,4 +232,28 @@ public class PollenServiceConfig { public Version getVersion() { return applicationConfig.getOption(Version.class, PollenServiceConfigOption.APPLICATION_VERSION.key); } + + public URL getUIHost() { + return applicationConfig.getOptionAsURL(PollenServiceConfigOption.UI_HOST.key); + } + + public String getPollEditUrl() { + return applicationConfig.getOption(PollenServiceConfigOption.URL_POLL_EDIT.key); + } + + public String getPollVoteUrl() { + return applicationConfig.getOption(PollenServiceConfigOption.URL_POLL_VOTE.key); + } + + public String getPollEditVoteUrl() { + return applicationConfig.getOption(PollenServiceConfigOption.URL_POLL_VOTE_EDIT.key); + } + + public String getUserValidateUrl() { + return applicationConfig.getOption(PollenServiceConfigOption.URL_USER_VALIDATE.key); + } + + public String getPollenUrl () { + return applicationConfig.getOption(PollenServiceConfigOption.UI_HOST.key); + } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java index a3c2208..f768934 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServiceConfigOption.java @@ -32,6 +32,7 @@ import org.nuiton.config.ConfigOptionDef; import org.nuiton.util.version.Version; import java.io.File; +import java.net.URL; import static org.nuiton.i18n.I18n.n; @@ -217,7 +218,32 @@ public enum PollenServiceConfigOption implements ConfigOptionDef { "pollen.version", "Version de l'application", null, - Version.class),; + Version.class), + UI_HOST( + "pollen.ui.host", + "Url de l'interface utilisateur", + "http://localhost", + URL.class), + URL_POLL_EDIT( + "pollen.ui.url.poll.edit", + "Url d'édition de sondage", + null, + String.class), + URL_POLL_VOTE( + "pollen.ui.url.poll.vote", + "Url de vote", + null, + String.class), + URL_POLL_VOTE_EDIT( + "pollen.ui.url.poll.vote.edit", + "Url d'edition vote", + null, + String.class), + URL_USER_VALIDATE( + "pollen.ui.url.user.validate", + "Url de validation d'utilisateur", + null, + String.class),; protected final String key; diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java index 97fb35f..300a1bf 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java @@ -127,6 +127,10 @@ public abstract class PollenServiceSupport implements PollenService { return newService(PollenResourceService.class); } + protected PollenUIUrlRenderService getPollenUIUrlRenderService() { + return newService(PollenUIUrlRenderService.class); + } + protected PollenUserService getUserService() { return newService(PollenUserService.class); } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUIUrlRenderService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUIUrlRenderService.java new file mode 100644 index 0000000..bce8ac6 --- /dev/null +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUIUrlRenderService.java @@ -0,0 +1,77 @@ +package org.chorem.pollen.services.service; + +/** + * Created on 25/08/14. + * + * @author dralagen + */ +public class PollenUIUrlRenderService extends PollenServiceSupport { + + public String getPollenUrl() { + return serviceContext.getPollenServiceConfig().getPollenUrl(); + } + + public String getPollEditUrl(String pollId, String token) { + checkNotNull(pollId); + + String url = serviceContext.getPollenServiceConfig().getPollEditUrl(); + + url = url.replace("{pollId}", pollId); + + if (token == null) { + url = url.replace("/{pollToken}", ""); + } + else { + url = url.replace("{pollToken}", token); + } + + return url; + } + + public String getPollVoteUrl(String pollId, String token) { + checkNotNull(pollId); + String url = serviceContext.getPollenServiceConfig().getPollVoteUrl(); + + url = url.replace("{pollId}", pollId); + + if (token == null) { + url = url.replace("/{pollToken}", ""); + } + else { + url = url.replace("{pollToken}", token); + } + + return url; + } + + public String getPollVoteEditUrl(String pollId, String pollToken, String voteToken) { + checkNotNull(pollId); + checkNotNull(voteToken); + + String url = serviceContext.getPollenServiceConfig().getPollEditVoteUrl(); + url = url.replace("{pollId}", pollId); + + if (pollToken == null) { + url = url.replace("/{pollToken}", ""); + } + else { + url = url.replace("{pollToken}", pollToken); + } + + url = url.replace("{voteToken}", voteToken); + + return url; + } + + public String getUserValidateUrl(String userId, String token) { + checkNotNull(userId); + checkNotNull(token); + + String url = serviceContext.getPollenServiceConfig().getUserValidateUrl(); + + url = url.replace("{userId}", userId); + url = url.replace("{token}", token); + + return url; + } +} diff --git a/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUIUrlRenderServiceTest.java b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUIUrlRenderServiceTest.java new file mode 100644 index 0000000..3b140ef --- /dev/null +++ b/pollen-services/src/test/java/org/chorem/pollen/services/service/PollenUIUrlRenderServiceTest.java @@ -0,0 +1,79 @@ +package org.chorem.pollen.services.service; + + +import org.chorem.pollen.services.AbstractPollenServiceTest; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.text.ParseException; + +public class PollenUIUrlRenderServiceTest extends AbstractPollenServiceTest { + protected PollenUIUrlRenderService service; + + @Before + public void setUp() throws ParseException { + + service = newService(PollenUIUrlRenderService.class); + } + + @Test + public void pollenUrlTest() { + String url = null; + + url = service.getPollenUrl(); + + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost", url); + } + + @Test + public void pollEditUrlTest() { + String url = null; + + url = service.getPollEditUrl("PollId", null); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/edit/PollId", url); + + url = service.getPollEditUrl("PollId", "Token"); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/edit/PollId/Token", url); + } + + @Test + public void pollVoteUrlTest() { + String url = null; + + url = service.getPollVoteUrl("PollId", null); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/vote/PollId", url); + + url = service.getPollVoteUrl("PollId", "Token"); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/vote/PollId/Token", url); + } + + @Test + public void pollVoteEditUrlTest() { + String url = null; + + url = service.getPollVoteEditUrl("PollId", null, "VoteToken"); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/vote/PollId/vote/VoteToken", url); + + url = service.getPollVoteEditUrl("PollId", "Token", "VoteToken"); + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/poll/vote/PollId/Token/vote/VoteToken", url); + } + + @Test + public void userValidateUrl() { + String url = null; + + url = service.getUserValidateUrl("UserId", "Token"); + + Assert.assertNotNull(url); + Assert.assertEquals("http://localhost/#/user/UserId/Token", url); + } + +} \ No newline at end of file diff --git a/pollen-services/src/test/resources/pollen-services.properties b/pollen-services/src/test/resources/pollen-services.properties index a9d9843..6235b0c 100644 --- a/pollen-services/src/test/resources/pollen-services.properties +++ b/pollen-services/src/test/resources/pollen-services.properties @@ -25,3 +25,8 @@ hibernate.connection.password=sa hibernate.connection.driver_class=org.h2.Driver hibernate.hbm2ddl.auto=update pollen.version=${project.version} +pollen.ui.host=http://localhost +pollen.ui.url.poll.edit=${pollen.ui.host}/#/poll/edit/{pollId}/{pollToken} +pollen.ui.url.poll.vote=${pollen.ui.host}/#/poll/vote/{pollId}/{pollToken} +pollen.ui.url.poll.vote.edit=${pollen.ui.url.poll.vote}/vote/{voteToken} +pollen.ui.url.user.validate=${pollen.ui.host}/#/user/{userId}/{token} \ No newline at end of file -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.