Sha256: 1b590991961b62014dcf20c0c73c4cd385c611bff7a79965b31b4c8ebd035868

Contents?: true

Size: 1018 Bytes

Versions: 3

Compression:

Stored size: 1018 Bytes

Contents

module Locomotive
  class ContentAssetService < Struct.new(:site, :account)

    include Locomotive::Concerns::ActivityService

    def list(options = {})
      options[:per_page] ||= Locomotive.config.ui[:per_page]

      site.content_assets
        .ordered
        .by_content_types(options[:types])
        .by_filename(options[:query])
        .page(options[:page] || 1).per(options[:per_page])
    end

    def bulk_create(list)
      list = list.values if list.is_a?(Hash)

      assets = list.map do |params|
        site.content_assets.create(params)
      end

      valid_assets = assets.map { |a| a.errors.empty? ? { name: a.source_filename, url: a.source.url, image: a.image? } : nil }.compact
      track_activity 'content_asset.created_bulk', parameters: { assets: valid_assets } unless valid_assets.empty?

      assets
    end

    def destroy(asset)
      asset.destroy.tap do
        track_activity 'content_asset.destroyed', parameters: { name: asset.source_filename }
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
locomotivecms-3.0.0.rc2 app/services/locomotive/content_asset_service.rb
locomotivecms-3.0.0.rc1 app/services/locomotive/content_asset_service.rb
locomotivecms-3.0.0.pre.beta.1 app/services/locomotive/content_asset_service.rb