Class: Uploadcare::Api::Rest::FileTags

Inherits:
Object
  • Object
show all
Defined in:
lib/uploadcare/api/rest/file_tags.rb

Overview

REST API endpoint for per-file tag operations.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rest:) ⇒ FileTags

Returns a new instance of FileTags.

Parameters:



13
14
15
# File 'lib/uploadcare/api/rest/file_tags.rb', line 13

def initialize(rest:)
  @rest = rest
end

Instance Attribute Details

#restUploadcare::Api::Rest (readonly)

Returns Parent REST client.

Returns:



10
11
12
# File 'lib/uploadcare/api/rest/file_tags.rb', line 10

def rest
  @rest
end

Instance Method Details

#list(uuid:, request_options: {}) ⇒ Uploadcare::Result Also known as: index

Get the ordered list of tags for a file.

Parameters:

  • uuid (String)

    File UUID

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

    Request options

Returns:



22
23
24
# File 'lib/uploadcare/api/rest/file_tags.rb', line 22

def list(uuid:, request_options: {})
  rest.get(path: tags_path(uuid), params: {}, headers: {}, request_options: request_options)
end

#replace(uuid:, tags:, request_options: {}) ⇒ Uploadcare::Result

Replace all tags for a file.

Parameters:

  • uuid (String)

    File UUID

  • tags (Array<String>)

    Complete replacement tag list

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

    Request options

Returns:



33
34
35
36
37
# File 'lib/uploadcare/api/rest/file_tags.rb', line 33

def replace(uuid:, tags:, request_options: {})
  rest.put(
    path: tags_path(uuid), params: { tags: tags }, headers: {}, request_options: request_options
  )
end

#update(uuid:, add: nil, delete: nil, request_options: {}) ⇒ Uploadcare::Result

Atomically add and delete tags for a file.

Deletions are applied before additions by the API.

Parameters:

  • uuid (String)

    File UUID

  • add (Array<String>, nil) (defaults to: nil)

    Tags to add

  • delete (Array<String>, nil) (defaults to: nil)

    Tags to delete

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

    Request options

Returns:



48
49
50
51
52
53
54
# File 'lib/uploadcare/api/rest/file_tags.rb', line 48

def update(uuid:, add: nil, delete: nil, request_options: {})
  params = {}
  params[:add] = add unless add.nil? || add.empty?
  params[:delete] = delete unless delete.nil? || delete.empty?
  body = params.empty? ? {}.to_json : params
  rest.patch(path: tags_path(uuid), params: body, headers: {}, request_options: request_options)
end