This is an automated email from the git hooks/post-receive script. New commit to branch feature/feedDeletion in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit 1993451cc109ada14eff322674fed659cd43e052 Author: jcouteau <couteau@codelutin.com> Date: Tue Dec 1 10:58:04 2020 +0100 Delete feeds in pollen --- .../rest/api/PollenRestApiRequestFilter.java | 2 - .../org/chorem/pollen/rest/api/v1/PollApi.java | 10 - .../pollen/services/service/ChoiceService.java | 1 - .../pollen/services/service/CommentService.java | 6 - .../pollen/services/service/FeedService.java | 212 --------------------- .../pollen/services/service/PollService.java | 4 - .../services/service/PollenServiceSupport.java | 4 - .../pollen/services/service/VoteService.java | 3 - .../src/main/web/tag/poll/Poll.tag.html | 5 - 9 files changed, 247 deletions(-) diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiRequestFilter.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiRequestFilter.java index edeff908..c026af45 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiRequestFilter.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/PollenRestApiRequestFilter.java @@ -38,7 +38,6 @@ import org.chorem.pollen.services.service.ChoiceService; import org.chorem.pollen.services.service.CommentService; import org.chorem.pollen.services.service.CryptoService; import org.chorem.pollen.services.service.FavoriteListService; -import org.chorem.pollen.services.service.FeedService; import org.chorem.pollen.services.service.FeedbackService; import org.chorem.pollen.services.service.GtuService; import org.chorem.pollen.services.service.NotificationService; @@ -123,7 +122,6 @@ public class PollenRestApiRequestFilter implements ContainerRequestFilter, Conta FavoriteListService.class, EmailService.class, NotificationService.class, - FeedService.class, PollService.class, SecurityService.class, ReportService.class, diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java index fd552dee..8d0f43bc 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java @@ -35,7 +35,6 @@ import org.chorem.pollen.services.bean.PollenEntityId; import org.chorem.pollen.services.bean.PollenEntityRef; import org.chorem.pollen.services.bean.export.ExportBean; import org.chorem.pollen.services.service.ChoiceService; -import org.chorem.pollen.services.service.FeedService; import org.chorem.pollen.services.service.InvalidFormException; import org.chorem.pollen.services.service.PollService; import org.jboss.resteasy.annotations.GZIP; @@ -188,15 +187,6 @@ public class PollApi { return pollService.assignPollToConnectedUser(pollId.getEntityId()); } - @Path("/polls/{pollId}/feed") - @Produces(MediaType.APPLICATION_ATOM_XML) - @GET - public Response getFeedForPoll(@Context FeedService feedService, - @PathParam("pollId") PollenEntityId<Poll> pollId) { - String feedContent = feedService.getFeedContentForPoll(pollId.getEntityId()); - return Response.ok(feedContent).build(); - } - @Path("/polls/{pollId}/invalidEmails") @GET @GZIP diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java index 01ad0e2c..b81c77ca 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java @@ -150,7 +150,6 @@ public class ChoiceService extends PollenServiceSupport { commit(); getNotificationService().onChoiceAdded(question, result); - getFeedService().onChoiceAdded(question, result); return PollenEntityRef.of(result); } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java index 158a495c..a60a7bef 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/CommentService.java @@ -260,7 +260,6 @@ public class CommentService extends PollenServiceSupport { commit(); getNotificationService().onCommentAdded(poll, result); - getFeedService().onCommentAdded(poll, result); return PollenEntityRef.of(result); @@ -292,7 +291,6 @@ public class CommentService extends PollenServiceSupport { commit(); getNotificationService().onCommentAdded(question, result); - getFeedService().onCommentAdded(question, result); return PollenEntityRef.of(result); } @@ -315,7 +313,6 @@ public class CommentService extends PollenServiceSupport { commit(); getNotificationService().onCommentEdited(poll, result); - getFeedService().onCommentEdited(poll, result); return toCommentBean(result); @@ -347,7 +344,6 @@ public class CommentService extends PollenServiceSupport { commit(); getNotificationService().onCommentEdited(question, result); - getFeedService().onCommentEdited(question, result); return toCommentBean(result); } @@ -368,7 +364,6 @@ public class CommentService extends PollenServiceSupport { commit(); getNotificationService().onCommentDeleted(poll, comment); - getFeedService().onCommentDeleted(poll, comment); } @@ -396,7 +391,6 @@ public class CommentService extends PollenServiceSupport { commit(); getNotificationService().onCommentDeleted(poll, comment); - getFeedService().onCommentDeleted(poll, comment); } protected Comment getComment(Poll poll, String commentId) { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedService.java deleted file mode 100644 index 1086014b..00000000 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedService.java +++ /dev/null @@ -1,212 +0,0 @@ -package org.chorem.pollen.services.service; - -/*- - * #%L - * Pollen :: Service - * %% - * Copyright (C) 2009 - 2017 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * #L% - */ - -import com.rometools.rome.feed.synd.SyndContent; -import com.rometools.rome.feed.synd.SyndContentImpl; -import com.rometools.rome.feed.synd.SyndEntry; -import com.rometools.rome.feed.synd.SyndEntryImpl; -import com.rometools.rome.feed.synd.SyndFeed; -import com.rometools.rome.feed.synd.SyndFeedImpl; -import com.rometools.rome.io.FeedException; -import com.rometools.rome.io.SyndFeedInput; -import com.rometools.rome.io.SyndFeedOutput; -import org.apache.commons.lang3.StringUtils; -import org.chorem.pollen.persistence.entity.Choice; -import org.chorem.pollen.persistence.entity.Comment; -import org.chorem.pollen.persistence.entity.Poll; -import org.chorem.pollen.persistence.entity.Question; -import org.chorem.pollen.persistence.entity.Vote; -import org.chorem.pollen.services.PollenTechnicalException; -import org.chorem.pollen.services.service.security.PollenPermissions; - -import java.io.StringReader; -import java.text.DateFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Set; - -import static org.nuiton.i18n.I18n.n; -import static org.nuiton.i18n.I18n.t; - -/** - * @author Kevin Morin (Code Lutin) - * @since 3.0 - */ -public class FeedService extends PollenServiceSupport { - - public static final String FEED_TYPE = "atom_1.0"; - public static final String DESCRIPTION_TYPE = "text/plain"; - - public void onPollCreated(Poll poll) { - SyndFeed feed = new SyndFeedImpl(); - feed.setFeedType(FEED_TYPE); - - feed.setTitle(poll.getTitle()); - String voteUrl = getPollVoteUrl(poll); - feed.setLink(voteUrl); - feed.setDescription(poll.getDescription()); - - SyndEntry entry = new SyndEntryImpl(); - entry.setTitle(t("pollen.service.feed.pollCreated.title", poll.getCreator().getName(), poll.getTitle())); - entry.setLink(voteUrl); - entry.setPublishedDate(poll.getTopiaCreateDate()); - - SyndContent description = new SyndContentImpl(); - description.setType(DESCRIPTION_TYPE); - description.setValue(t("pollen.service.feed.pollCreated.description", - DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(poll.getTopiaCreateDate()), - poll.getCreator().getName(), - poll.getTitle())); - entry.setDescription(description); - - List<SyndEntry> feedEntries = Collections.singletonList(entry); - feed.setEntries(feedEntries); - - saveFeed(poll, feed); - } - - public void onPollEdited(Poll poll) { - addFeedEntry(poll, t("pollen.service.feed.pollEdited.title")); - } - - public void onPollClosed(Poll poll) { - addFeedEntry(poll, t("pollen.service.feed.pollClosed.title")); - } - - public void onPollReopened(Poll poll) { - addFeedEntry(poll, t("pollen.service.feed.pollReopened.title")); - } - - public void onChoiceAdded(Question question, Choice choice) { - addFeedEntry(question.getPoll(), t("pollen.service.feed.choiceAdded.title")); - } - - public void onVoteAdded(Question question, Vote vote) { - addVoteFeedEntry(question.getPoll(), vote, n("pollen.service.feed.voteAdded.title")); - } - - public void onVoteEdited(Question question, Vote vote) { - addVoteFeedEntry(question.getPoll(), vote, n("pollen.service.feed.voteEdited.title")); - } - - public void onVoteDeleted(Question question, Vote vote) { - addVoteFeedEntry(question.getPoll(), vote, n("pollen.service.feed.voteDeleted.title")); - } - - public void onCommentAdded(Poll poll, Comment comment) { - addFeedEntry(poll, t("pollen.service.feed.commentAdded.title", comment.getAuthor())); - } - - public void onCommentEdited(Poll poll, Comment comment) { - addFeedEntry(poll, t("pollen.service.feed.commentEdited.title", comment.getAuthor())); - } - - public void onCommentDeleted(Poll poll, Comment comment) { - addFeedEntry(poll, t("pollen.service.feed.commentDeleted.title", comment.getAuthor())); - } - - public void onCommentAdded(Question question, Comment comment) { - //FIXME JC181002 - FeedEntry spécifique pour questions - addFeedEntry(question.getPoll(), t("pollen.service.feed.commentAdded.title", comment.getAuthor())); - } - - public void onCommentEdited(Question question, Comment comment) { - //FIXME JC181002 - FeedEntry spécifique pour questions - addFeedEntry(question.getPoll(), t("pollen.service.feed.commentEdited.title", comment.getAuthor())); - } - - public void onCommentDeleted(Question question, Comment comment) { - //FIXME JC181002 - FeedEntry spécifique pour questions - addFeedEntry(question.getPoll(), t("pollen.service.feed.commentDeleted.title", comment.getAuthor())); - } - - public SyndFeed getFeedForPoll(String pollId) { - checkNotNull(pollId); - - Poll poll = getPollService().getPoll0(pollId); - checkPermission(PollenPermissions.read(poll)); - - if (StringUtils.isBlank(poll.getFeedContent())) { - // uniquement pour les sondages créé avant la génération de flux RSS - onPollCreated(poll); - } - - try { - SyndFeedInput feedInput = new SyndFeedInput(true, getLocale()); - return feedInput.build(new StringReader(poll.getFeedContent())); - - } catch (FeedException e) { - throw new PollenTechnicalException("Error while reading the feed", e); - } - } - - public String getFeedContentForPoll(String pollId) { - checkIsConnectedRequired(); - - checkNotNull(pollId); - - Poll poll = getPollService().getPoll0(pollId); - checkPermission(PollenPermissions.read(poll)); - - return poll.getFeedContent(); - } - - private void addVoteFeedEntry(Poll poll, Vote vote, String messageKey) { - String voterName; - if (vote.isAnonymous()) { - voterName = t("pollen.service.feed.anonymous"); - } else { - voterName = vote.getVoter().getName(); - } - addFeedEntry(poll, t(messageKey, voterName)); - } - - private void addFeedEntry(Poll poll, String title) { - SyndFeed feed = getFeedForPoll(poll.getTopiaId()); - List<SyndEntry> entries = new ArrayList<>(feed.getEntries()); - - SyndEntry entry = new SyndEntryImpl(); - entry.setTitle(title); - entry.setLink(getPollVoteUrl(poll)); - entry.setPublishedDate(new Date()); - - entries.add(entry); - feed.setEntries(entries); - - saveFeed(poll, feed); - } - - private void saveFeed(Poll poll, SyndFeed feed) { - try { - SyndFeedOutput output = new SyndFeedOutput(); - String feedContent = output.outputString(feed); - poll.setFeedContent(feedContent); - commit(); - - } catch (FeedException e) { - throw new PollenTechnicalException("Error while creating the feed", e); - } - } -} diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java index a46f53da..ab564278 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java @@ -360,7 +360,6 @@ public class PollService extends PollenServiceSupport { commit(); getNotificationService().onPollCreated(savedPoll); - getFeedService().onPollCreated(savedPoll); return PollenEntityRef.of(savedPoll); @@ -385,7 +384,6 @@ public class PollService extends PollenServiceSupport { commit(); getNotificationService().onPollEdited(savedPoll); - getFeedService().onPollEdited(savedPoll); return toPollBean(savedPoll); } @@ -462,7 +460,6 @@ public class PollService extends PollenServiceSupport { commit(); getNotificationService().onPollClosed(poll); - getFeedService().onPollClosed(poll); return poll.getEndDate(); } @@ -483,7 +480,6 @@ public class PollService extends PollenServiceSupport { commit(); getNotificationService().onPollReopened(poll); - getFeedService().onPollReopened(poll); } } 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 37effb9c..c9d39c9b 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 @@ -134,10 +134,6 @@ public abstract class PollenServiceSupport implements PollenService { return newService(NotificationService.class); } - protected FeedService getFeedService() { - return newService(FeedService.class); - } - protected GtuService getGtuService() { return newService(GtuService.class); } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java index 85aed539..5138f2dc 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java @@ -279,7 +279,6 @@ public class VoteService extends PollenServiceSupport { commit(); getNotificationService().onVoteAdded(question, result); - getFeedService().onVoteAdded(question, result); int maxVoters = getPollService().getMaxVoters(question.getPoll()); if (maxVoters > 0 && getVoteCount(question) > maxVoters) { @@ -320,7 +319,6 @@ public class VoteService extends PollenServiceSupport { commit(); getNotificationService().onVoteEdited(question, result); - getFeedService().onVoteEdited(question, result); return toVoteBean(result); @@ -350,7 +348,6 @@ public class VoteService extends PollenServiceSupport { commit(); getNotificationService().onVoteDeleted(question, vote); - getFeedService().onVoteDeleted(question, vote); } diff --git a/pollen-ui-riot-js/src/main/web/tag/poll/Poll.tag.html b/pollen-ui-riot-js/src/main/web/tag/poll/Poll.tag.html index 7e5d10e0..1511b7ad 100644 --- a/pollen-ui-riot-js/src/main/web/tag/poll/Poll.tag.html +++ b/pollen-ui-riot-js/src/main/web/tag/poll/Poll.tag.html @@ -27,11 +27,6 @@ <QrCodeButton if="{poll.pollType === 'FREE'}" class="title-button not-printable" value="{window.location.origin}{window.location.pathname}#poll/{poll.id}/vote" title="{_t.qrcode}"/> - <a href="{session.configuration.endPoint}/v1/polls/{poll.id}/feed?{poll.permission ? 'permission=' + poll.permission : ''}" - class="c-button c-button--info title-button not-printable" - title="{_t.rss}"> - <i class="fa fa-rss" aria-hidden="true"></i> - </a> <a class="c-button c-button--info title-button not-printable" href="javascript:window.print()" title="{_t.print}"> <i class="fa fa-print" aria-hidden="true"></i> </a> -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.