Class: Collavre::Creatives::IndexQuery

Inherits:
Object
  • Object
show all
Defined in:
app/services/collavre/creatives/index_query.rb

Defined Under Namespace

Classes: Result

Instance Method Summary collapse

Constructor Details

#initialize(user:, params: {}) ⇒ IndexQuery

Returns a new instance of IndexQuery.



15
16
17
18
# File 'app/services/collavre/creatives/index_query.rb', line 15

def initialize(user:, params: {})
  @user = user
  @params = params.with_indifferent_access
end

Instance Method Details

#callObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/services/collavre/creatives/index_query.rb', line 20

def call
  result = resolve_creatives
  shared_creative = result[:parent] || result[:creatives]&.first
  shared_list = shared_creative ? shared_creative.all_shared_users : []

  Result.new(
    creatives: result[:creatives],
    parent_creative: result[:parent],
    shared_creative: shared_creative,
    shared_list: shared_list,
    overall_progress: result[:overall_progress] || 0,
    allowed_creative_ids: result[:allowed_ids],
    progress_map: result[:progress_map]
  )
end