Class ConversationsServiceImpl

  • All Implemented Interfaces:
    Observer, org.sakaiproject.conversations.api.ConversationsService

    @Transactional
    public class ConversationsServiceImpl
    extends Object
    implements org.sakaiproject.conversations.api.ConversationsService, Observer
    • Constructor Detail

      • ConversationsServiceImpl

        public ConversationsServiceImpl()
    • Method Detail

      • init

        public void init()
      • getEntityPrefix

        public String getEntityPrefix()
      • getBlankTopic

        public org.sakaiproject.conversations.api.beans.TopicTransferBean getBlankTopic​(String siteId)
                                                                                 throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getBlankTopic in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getTopic

        public Optional<org.sakaiproject.conversations.api.beans.TopicTransferBean> getTopic​(String topicId)
                                                                                      throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getTopic in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • currentUserCanViewTopic

        public boolean currentUserCanViewTopic​(org.sakaiproject.conversations.api.model.ConversationsTopic topic)
        Specified by:
        currentUserCanViewTopic in interface org.sakaiproject.conversations.api.ConversationsService
      • getTopicsForSite

        public List<org.sakaiproject.conversations.api.beans.TopicTransferBean> getTopicsForSite​(String siteId)
                                                                                          throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getTopicsForSite in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getTopicPortalUrl

        public Optional<String> getTopicPortalUrl​(String topicId)
        Specified by:
        getTopicPortalUrl in interface org.sakaiproject.conversations.api.ConversationsService
      • getPostPortalUrl

        public Optional<String> getPostPortalUrl​(String topicId,
                                                 String postId)
        Specified by:
        getPostPortalUrl in interface org.sakaiproject.conversations.api.ConversationsService
      • getCommentPortalUrl

        public Optional<String> getCommentPortalUrl​(String commentId)
        Specified by:
        getCommentPortalUrl in interface org.sakaiproject.conversations.api.ConversationsService
      • saveTopic

        public org.sakaiproject.conversations.api.beans.TopicTransferBean saveTopic​(org.sakaiproject.conversations.api.beans.TopicTransferBean topicBean,
                                                                                    boolean sendMessage)
                                                                             throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        saveTopic in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • pinTopic

        public void pinTopic​(String topicId,
                             boolean pinned)
                      throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        pinTopic in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • lockTopic

        public org.sakaiproject.conversations.api.beans.TopicTransferBean lockTopic​(String topicId,
                                                                                    boolean locked,
                                                                                    boolean needsModerator)
                                                                             throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        lockTopic in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • recursivelyLockPosts

        public void recursivelyLockPosts​(org.sakaiproject.conversations.api.model.ConversationsPost post,
                                         Boolean locked)
      • hideTopic

        public org.sakaiproject.conversations.api.model.ConversationsTopic hideTopic​(String topicId,
                                                                                     boolean hidden,
                                                                                     boolean needsModerator)
                                                                              throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        hideTopic in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • bookmarkTopic

        public void bookmarkTopic​(String topicId,
                                  boolean bookmarked)
                           throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        bookmarkTopic in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • deleteTopic

        public void deleteTopic​(String topicId)
                         throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        deleteTopic in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • saveTopicReactions

        public Map<org.sakaiproject.conversations.api.Reaction,​Integer> saveTopicReactions​(String topicId,
                                                                                                 Map<org.sakaiproject.conversations.api.Reaction,​Boolean> reactions)
                                                                                          throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        saveTopicReactions in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getPost

        public Optional<org.sakaiproject.conversations.api.beans.PostTransferBean> getPost​(String postId)
                                                                                    throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getPost in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • savePost

        public org.sakaiproject.conversations.api.beans.PostTransferBean savePost​(org.sakaiproject.conversations.api.beans.PostTransferBean postBean,
                                                                                  boolean sendMessage)
                                                                           throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        savePost in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • currentUserCanViewPost

        public boolean currentUserCanViewPost​(org.sakaiproject.conversations.api.model.ConversationsPost post)
        Specified by:
        currentUserCanViewPost in interface org.sakaiproject.conversations.api.ConversationsService
      • currentUserCanViewComment

        public boolean currentUserCanViewComment​(org.sakaiproject.conversations.api.model.ConversationsComment comment)
        Specified by:
        currentUserCanViewComment in interface org.sakaiproject.conversations.api.ConversationsService
      • getNumberOfThreadPages

        @Transactional(readOnly=true)
        public int getNumberOfThreadPages​(String siteId,
                                          String topicId)
                                   throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getNumberOfThreadPages in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getPostsByTopicId

        @Transactional(readOnly=true)
        public Collection<org.sakaiproject.conversations.api.beans.PostTransferBean> getPostsByTopicId​(String siteId,
                                                                                                       String topicId,
                                                                                                       Integer page,
                                                                                                       org.sakaiproject.conversations.api.PostSort postSort,
                                                                                                       String requestedPostId)
                                                                                                throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getPostsByTopicId in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • deletePost

        public void deletePost​(String siteId,
                               String topicId,
                               String postId,
                               boolean setTopicResolved)
                        throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        deletePost in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • lockPost

        public org.sakaiproject.conversations.api.beans.PostTransferBean lockPost​(String siteId,
                                                                                  String topicId,
                                                                                  String postId,
                                                                                  boolean locked)
                                                                           throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        lockPost in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • hidePost

        public org.sakaiproject.conversations.api.beans.PostTransferBean hidePost​(String siteId,
                                                                                  String topicId,
                                                                                  String postId,
                                                                                  boolean hidden)
                                                                           throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        hidePost in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • savePostReactions

        public Map<org.sakaiproject.conversations.api.Reaction,​Integer> savePostReactions​(String topicId,
                                                                                                String postId,
                                                                                                Map<org.sakaiproject.conversations.api.Reaction,​Boolean> reactions)
                                                                                         throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        savePostReactions in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • markPostsViewed

        public void markPostsViewed​(Set<String> postIds,
                                    String topicId)
                             throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        markPostsViewed in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getComment

        public Optional<org.sakaiproject.conversations.api.beans.CommentTransferBean> getComment​(String commentId)
                                                                                          throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getComment in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • saveComment

        public org.sakaiproject.conversations.api.beans.CommentTransferBean saveComment​(org.sakaiproject.conversations.api.beans.CommentTransferBean commentBean)
                                                                                 throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        saveComment in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • deleteComment

        public void deleteComment​(String siteId,
                                  String commentId)
                           throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        deleteComment in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • upvotePost

        public org.sakaiproject.conversations.api.beans.PostTransferBean upvotePost​(String siteId,
                                                                                    String topicId,
                                                                                    String postId)
                                                                             throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        upvotePost in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • unUpvotePost

        public org.sakaiproject.conversations.api.beans.PostTransferBean unUpvotePost​(String siteId,
                                                                                      String postId)
                                                                               throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        unUpvotePost in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • saveTag

        public org.sakaiproject.conversations.api.model.Tag saveTag​(org.sakaiproject.conversations.api.model.Tag tag)
                                                             throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        saveTag in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • createTags

        public List<org.sakaiproject.conversations.api.model.Tag> createTags​(List<org.sakaiproject.conversations.api.model.Tag> tags)
                                                                      throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        createTags in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getTagsForSite

        @Transactional(readOnly=true)
        public List<org.sakaiproject.conversations.api.model.Tag> getTagsForSite​(String siteId)
                                                                          throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getTagsForSite in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • deleteTag

        public void deleteTag​(Long tagId)
                       throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        deleteTag in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getSettingsForSite

        public org.sakaiproject.conversations.api.model.Settings getSettingsForSite​(String siteId)
                                                                             throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getSettingsForSite in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • saveSettings

        public org.sakaiproject.conversations.api.model.Settings saveSettings​(org.sakaiproject.conversations.api.model.Settings settings)
                                                                       throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        saveSettings in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getConvStatusForSiteAndUser

        public org.sakaiproject.conversations.api.model.ConvStatus getConvStatusForSiteAndUser​(String siteId,
                                                                                               String userId)
                                                                                        throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getConvStatusForSiteAndUser in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • saveConvStatus

        public void saveConvStatus​(org.sakaiproject.conversations.api.model.ConvStatus convStatus)
                            throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        saveConvStatus in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getSiteStats

        @Transactional(readOnly=true)
        public Map<String,​Object> getSiteStats​(String siteId,
                                                     Instant from,
                                                     Instant to,
                                                     int page,
                                                     String sort)
                                              throws org.sakaiproject.conversations.api.ConversationsPermissionsException
        Specified by:
        getSiteStats in interface org.sakaiproject.conversations.api.ConversationsService
        Throws:
        org.sakaiproject.conversations.api.ConversationsPermissionsException
      • getEventKeys

        public String[] getEventKeys()