Class: Collavre::Tools::CreativeListAttachmentsService

Inherits:
Object
  • Object
show all
Extended by:
T::Sig, ToolMeta
Includes:
PublicAssetsHelper
Defined in:
app/services/collavre/tools/creative_list_attachments_service.rb

Instance Method Summary collapse

Methods included from PublicAssetsHelper

#public_asset_url

Instance Method Details

#call(creative_id:) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/services/collavre/tools/creative_list_attachments_service.rb', line 16

def call(creative_id:)
  raise "Current.user is required" unless Current.user

  creative = Creative.find_by(id: creative_id)
  return { error: "Creative not found", id: creative_id } unless creative

  unless creative.has_permission?(Current.user, :read)
    return { error: "No read permission on Creative", id: creative_id }
  end

  {
    success: true,
    creative_id: creative.id,
    attachments: creative.files.with_all_variant_records.map { |a|
      {
        signed_id: a.blob.signed_id,
        filename: a.filename.to_s,
        content_type: a.content_type,
        byte_size: a.byte_size,
        url: public_asset_url(a.blob)
      }
    }
  }
end