Class: Decidim::Budgets::ProjectType

Inherits:
Api::Types::BaseObject show all
Defined in:
decidim-budgets/lib/decidim/api/project_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)


48
49
50
51
52
53
54
55
56
57
58
59
# File 'decidim-budgets/lib/decidim/api/project_type.rb', line 48

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

  chain = [
    allowed_to?(:read, :project, object, context),
    object.visible?
  ].all?

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

Instance Method Details

#budget_urlObject



44
45
46
# File 'decidim-budgets/lib/decidim/api/project_type.rb', line 44

def budget_url
  Decidim::EngineRouter.main_proxy(object.component).budget_url(object.budget)
end

#confirmed_votesObject



30
31
32
33
34
# File 'decidim-budgets/lib/decidim/api/project_type.rb', line 30

def confirmed_votes
  return unless object.component.current_settings.show_votes?

  object.confirmed_orders_count
end


36
37
38
# File 'decidim-budgets/lib/decidim/api/project_type.rb', line 36

def related_proposals
  object.linked_resources(:proposals, "included_proposals")
end

#urlObject



40
41
42
# File 'decidim-budgets/lib/decidim/api/project_type.rb', line 40

def url
  object.resource_locator.url
end