Sha256: 39c7f6d32a17917b5832fd888619b741f402983743ed7665b234078d51c2d709

Contents?: true

Size: 1.21 KB

Versions: 16

Compression:

Stored size: 1.21 KB

Contents

module Tessa
  class Asset
    include Virtus.model
    extend ResponseFactory

    attribute :id, Integer
    attribute :status, String
    attribute :strategy, String
    attribute :meta, Hash[Symbol => String]
    attribute :public_url, String
    attribute :private_url, String
    attribute :private_download_url, String
    attribute :delete_url, String

    def complete!(connection: Tessa.config.connection)
      Asset.new_from_response connection.patch("/assets/#{id}/completed")
    end

    def cancel!(connection: Tessa.config.connection)
      Asset.new_from_response connection.patch("/assets/#{id}/cancelled")
    end

    def delete!(connection: Tessa.config.connection)
      Asset.new_from_response connection.delete("/assets/#{id}")
    end

    def self.find(*ids,
                  connection: Tessa.config.connection)
      new_from_response connection.get("/assets/#{ids.join(",")}")
    end

    def self.create(file:, **options)
      default_options = {
        size: File.size(file),
        name: File.basename(file),
        date: File.mtime(file),
      }
      Upload.create(default_options.merge(options)).upload_file(file)
    end

    def failure?
      false
    end
  end
end

require 'tessa/asset/failure'

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
tessa-1.2.3 lib/tessa/asset.rb
tessa-1.2.2 lib/tessa/asset.rb
tessa-2.0 lib/tessa/asset.rb
tessa-1.2.1 lib/tessa/asset.rb
tessa-1.2.0 lib/tessa/asset.rb
tessa-1.1.1 lib/tessa/asset.rb
tessa-1.1.0 lib/tessa/asset.rb
tessa-1.0.2 lib/tessa/asset.rb
tessa-1.0.1 lib/tessa/asset.rb
tessa-1.0.0 lib/tessa/asset.rb
tessa-1.0.0.pre.rc3 lib/tessa/asset.rb
tessa-1.0.0.pre.rc2 lib/tessa/asset.rb
tessa-1.0.0.pre.rc1 lib/tessa/asset.rb
tessa-0.9.2 lib/tessa/asset.rb
tessa-0.9.1 lib/tessa/asset.rb
tessa-0.9.0 lib/tessa/asset.rb