Class: LcpRuby::Widgets::DataResolver

Inherits:
Object
  • Object
show all
Includes:
ScopeApplicator
Defined in:
lib/lcp_ruby/widgets/data_resolver.rb

Defined Under Namespace

Classes: WidgetScope

Instance Method Summary collapse

Methods included from ScopeApplicator

apply_date_range_filter, apply_filter_form, apply_scope_filters, apply_value_filter, blank_filter_value?, dispatch_filter_value, resolve_filter_value

Constructor Details

#initialize(zone, user:, scope_context: nil, filter_form: nil, scope_filter_set: nil, record: nil) ⇒ DataResolver

Returns a new instance of DataResolver.



8
9
10
11
12
13
14
15
16
# File 'lib/lcp_ruby/widgets/data_resolver.rb', line 8

def initialize(zone, user:, scope_context: nil,
               filter_form: nil, scope_filter_set: nil, record: nil)
  @zone = zone
  @user = user
  @scope_context = scope_context || {}
  @filter_form = filter_form
  @scope_filter_set = scope_filter_set
  @record = record
end

Instance Method Details

#resolveObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/lcp_ruby/widgets/data_resolver.rb', line 18

def resolve
  widget = @zone.widget
  return { hidden: true } unless widget

  case widget["type"]
  when "kpi_card" then resolve_kpi_card(widget)
  when "text"     then resolve_text(widget)
  when "list"     then resolve_list(widget)
  when "chart"    then resolve_chart(widget)
  when "embed"    then resolve_embed(widget)
  when "workflow_graph" then resolve_workflow_graph(widget)
  when "approval_status" then resolve_approval_status
  else { hidden: true }
  end
end