Class: Uploadcare::Api::Upload::Groups

Inherits:
Object
  • Object
show all
Defined in:
lib/uploadcare/api/upload/groups.rb

Overview

Upload API endpoint for group operations.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(upload:) ⇒ Groups

Returns a new instance of Groups.

Parameters:



11
12
13
# File 'lib/uploadcare/api/upload/groups.rb', line 11

def initialize(upload:)
  @upload = upload
end

Instance Attribute Details

#uploadUploadcare::Api::Upload (readonly)

Returns Parent Upload client.

Returns:



8
9
10
# File 'lib/uploadcare/api/upload/groups.rb', line 8

def upload
  @upload
end

Instance Method Details

#create(files:, request_options: {}, **options) ⇒ Uploadcare::Result

Create a file group from UUIDs (POST /group/).

Parameters:

  • files (Array<String>)

    Array of file UUIDs or objects responding to #uuid

  • options (Hash)

    Group creation options (:signature, :expire)

  • request_options (Hash) (defaults to: {})

    Request options

Returns:

Raises:

  • (ArgumentError)

    if files is empty or not an array

See Also:



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/uploadcare/api/upload/groups.rb', line 23

def create(files:, request_options: {}, **options)
  Uploadcare::Result.capture do
    raise ArgumentError, 'files must be an array' unless files.is_a?(Array)
    raise ArgumentError, 'files cannot be empty' if files.empty?

    params = build_group_params(files, options)
    Uploadcare::Result.unwrap(
      upload.post(path: 'group/', params: params, headers: {}, request_options: request_options)
    )
  end
end

#info(group_id:, request_options: {}) ⇒ Uploadcare::Result

Get group info (GET /group/info/).

Parameters:

  • group_id (String)

    Group UUID

  • request_options (Hash) (defaults to: {})

    Request options

Returns:

Raises:

  • (ArgumentError)

    if group_id is empty

See Also:



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/uploadcare/api/upload/groups.rb', line 42

def info(group_id:, request_options: {})
  Uploadcare::Result.capture do
    raise ArgumentError, 'group_id cannot be empty' if group_id.to_s.strip.empty?

    Uploadcare::Result.unwrap(
      upload.get(path: 'group/info/',
                 params: { pub_key: upload.config.public_key, group_id: group_id },
                 request_options: request_options)
    )
  end
end