Sha256: 8ea4f8dd3540ab98ce13ec1161442aebbd05e0e13931f99d1540ef1dfc69c1ac

Contents?: true

Size: 692 Bytes

Versions: 17

Compression:

Stored size: 692 Bytes

Contents

module Tessa
  class Upload
    include Virtus.model
    extend ResponseFactory

    attribute :asset_id, Integer
    attribute :upload_url, String
    attribute :upload_method, String

    def upload_file(file)
      if UploadsFile.new(upload: self).(file)
        asset.complete!
      else
        asset.cancel!
        false
      end
    end

    def self.create(connection: Tessa.config.connection,
                    strategy: Tessa.config.strategy,
                    **options)
      new_from_response connection.post('/uploads', options.merge(strategy: strategy))
    end

    private def asset
      Asset.new(id: asset_id)
    end
  end
end

require 'tessa/upload/uploads_file'

Version data entries

17 entries across 17 versions & 1 rubygems

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