Class: Decidim::Comments::CommentType
- Inherits:
-
Api::Types::BaseObject
- Object
- Api::Types::BaseObject
- Decidim::Comments::CommentType
- Defined in:
- lib/decidim/api/comment_type.rb
Overview
This type represents a comment on a commentable object.
Class Method Summary collapse
Instance Method Summary collapse
- #already_reported ⇒ Object
- #author ⇒ Object
- #down_voted ⇒ Object
- #has_comments? ⇒ Boolean
- #sgid ⇒ Object
- #up_voted ⇒ Object
- #user_allowed_to_comment ⇒ Object
Class Method Details
.authorized?(object, context) ⇒ Boolean
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/decidim/api/comment_type.rb', line 55 def self.(object, context) chain = [] if object.respond_to?(:commentable) && !object.commentable.is_a?(Decidim::Comments::Comment) chain.unshift(allowed_to?(:read, object.commentable, object.commentable, context)) end chain.unshift(!object.hidden?) chain.unshift(!object.deleted?) super && chain.all? end |
Instance Method Details
#already_reported ⇒ Object
47 48 49 |
# File 'lib/decidim/api/comment_type.rb', line 47 def already_reported object.reported_by?(context[:current_user]) end |
#author ⇒ Object
27 28 29 |
# File 'lib/decidim/api/comment_type.rb', line 27 def object.user_group || object. end |
#down_voted ⇒ Object
39 40 41 |
# File 'lib/decidim/api/comment_type.rb', line 39 def down_voted object.down_voted_by?(context[:current_user]) end |
#has_comments? ⇒ Boolean
43 44 45 |
# File 'lib/decidim/api/comment_type.rb', line 43 def has_comments? object.comment_threads.not_hidden.size.positive? end |
#sgid ⇒ Object
31 32 33 |
# File 'lib/decidim/api/comment_type.rb', line 31 def sgid object.to_sgid.to_s end |
#up_voted ⇒ Object
35 36 37 |
# File 'lib/decidim/api/comment_type.rb', line 35 def up_voted object.up_voted_by?(context[:current_user]) end |
#user_allowed_to_comment ⇒ Object
51 52 53 |
# File 'lib/decidim/api/comment_type.rb', line 51 def user_allowed_to_comment object.root_commentable.commentable? && object.root_commentable.user_allowed_to_comment?(context[:current_user]) end |