Class: Decidim::Meetings::MeetingType

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

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Api::Types::BaseObject

allowed_to?, determine_subject_name, local_admin_context, local_context, permission_chain

Class Method Details

.authorized?(object, context) ⇒ Boolean

Returns:

  • (Boolean)


83
84
85
86
87
88
89
90
91
92
93
# File 'decidim-meetings/lib/decidim/api/meeting_type.rb', line 83

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

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

  super && chain
end

Instance Method Details

#agendaObject



67
68
69
# File 'decidim-meetings/lib/decidim/api/meeting_type.rb', line 67

def agenda
  object.agenda if object.agenda&.visible?
end

#audio_urlObject



79
80
81
# File 'decidim-meetings/lib/decidim/api/meeting_type.rb', line 79

def audio_url
  object.audio_url if object.closing_visible?
end

#closing_reportObject



71
72
73
# File 'decidim-meetings/lib/decidim/api/meeting_type.rb', line 71

def closing_report
  object.closing_report if object.closing_visible?
end

#registration_formObject



63
64
65
# File 'decidim-meetings/lib/decidim/api/meeting_type.rb', line 63

def registration_form
  object.questionnaire if object.registration_form_enabled?
end

#urlObject



59
60
61
# File 'decidim-meetings/lib/decidim/api/meeting_type.rb', line 59

def url
  Decidim::ResourceLocatorPresenter.new(object).url
end

#video_urlObject



75
76
77
# File 'decidim-meetings/lib/decidim/api/meeting_type.rb', line 75

def video_url
  object.video_url if object.closing_visible?
end