Sha256: b0cb51b1ea5a216429078abd9dfa52266ea452c967ab5120776e14bd9f09b886

Contents?: true

Size: 1.55 KB

Versions: 8

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true

require_relative 'rest_client'

module Uploadcare
  module Client
    # API client for handling single files
    # @see https://uploadcare.com/docs/api_reference/rest/accessing_files/
    # @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/File
    class FileClient < RestClient
      # Gets list of files without pagination fields
      def index
        response = get(uri: '/files/')
        response.fmap { |i| i[:results] }
      end

      # Acquire file info
      # @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/fileInfo
      def info(uuid)
        get(uri: "/files/#{uuid}/")
      end
      alias file info

      # @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/File/operation/createLocalCopy
      def local_copy(options = {})
        body = options.compact.to_json
        post(uri: '/files/local_copy/', content: body)
      end

      # @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/File/operation/createRemoteCopy
      def remote_copy(options = {})
        body = options.compact.to_json
        post(uri: '/files/remote_copy/', content: body)
      end

      # @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/deleteFileStorage
      def delete(uuid)
        request(method: 'DELETE', uri: "/files/#{uuid}/storage/")
      end

      # Store a single file, preventing it from being deleted in 2 weeks
      # @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/storeFile
      def store(uuid)
        put(uri: "/files/#{uuid}/storage/")
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
uploadcare-ruby-4.3.6 lib/uploadcare/client/file_client.rb
uploadcare-ruby-4.3.5 lib/uploadcare/client/file_client.rb
uploadcare-ruby-4.3.4 lib/uploadcare/client/file_client.rb
uploadcare-ruby-4.3.3 lib/uploadcare/client/file_client.rb
uploadcare-ruby-4.3.2 lib/uploadcare/client/file_client.rb
uploadcare-ruby-4.3.1 lib/uploadcare/client/file_client.rb
uploadcare-ruby-4.3.0 lib/uploadcare/client/file_client.rb
uploadcare-ruby-4.2.0 lib/uploadcare/client/file_client.rb