Class: Decidim::Proposals::ProposalType

Inherits:
Api::Types::BaseObject show all
Defined in:
decidim-proposals/lib/decidim/api/proposal_type.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Api::Types::BaseObject

allowed_to?, determine_subject_name, local_context, permission_chain

Class Method Details

.authorized?(object, context) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
54
55
56
57
58
59
60
61
62
# File 'decidim-proposals/lib/decidim/api/proposal_type.rb', line 51

def self.authorized?(object, context)
  context[:proposal] = object

  chain = [
    allowed_to?(:read, :proposal, object, context),
    object.published?
  ].all?

  super && chain
rescue Decidim::PermissionAction::PermissionNotSetError
  false
end

Instance Method Details

#coordinatesObject



38
39
40
# File 'decidim-proposals/lib/decidim/api/proposal_type.rb', line 38

def coordinates
  [object.latitude, object.longitude]
end

#meetingObject



42
43
44
# File 'decidim-proposals/lib/decidim/api/proposal_type.rb', line 42

def meeting
  object.authors.first if object.official_meeting?
end

#vote_countObject



46
47
48
49
# File 'decidim-proposals/lib/decidim/api/proposal_type.rb', line 46

def vote_count
  current_component = object.component
  object.proposal_votes_count unless current_component.current_settings.votes_hidden?
end