Class: CardDB::Resources::Files

Inherits:
Base
  • Object
show all
Defined in:
lib/carddb/resources/files.rb

Overview

File upload helper resource.

Instance Attribute Summary

Attributes inherited from Base

#client, #config, #connection

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from CardDB::Resources::Base

Instance Method Details

#confirm_upload(id:) ⇒ Object

Confirm that a presigned upload completed. Requires a server-side secret credential.



25
26
27
28
29
30
# File 'lib/carddb/resources/files.rb', line 25

def confirm_upload(id:)
  config.require_secret_credential!('files.confirm_upload')

  data = connection.execute(QueryBuilder.file_upload_confirm, { id: id })
  File.new(data['fileUploadConfirm'], client: client)
end

#delete(id:) ⇒ Object

Delete a file. Requires a server-side secret credential. rubocop:disable Naming/PredicateMethod



34
35
36
37
38
39
# File 'lib/carddb/resources/files.rb', line 34

def delete(id:)
  config.require_secret_credential!('files.delete')

  data = connection.execute(QueryBuilder.file_delete, { id: id })
  !!data['fileDelete']
end

#get(id, cache: nil) ⇒ Object

Get one file by ID.



8
9
10
11
12
13
14
# File 'lib/carddb/resources/files.rb', line 8

def get(id, cache: nil)
  key = cache_key('files', 'get', id: id)
  with_cache(key, resource: :files, cache: cache) do
    data = connection.execute(QueryBuilder.file, { id: id })
    data['file'] ? File.new(data['file'], client: client) : nil
  end
end

#request_upload(input:) ⇒ Object

Request a presigned URL for direct upload. Requires a server-side secret credential.



17
18
19
20
21
22
# File 'lib/carddb/resources/files.rb', line 17

def request_upload(input:)
  config.require_secret_credential!('files.request_upload')

  data = connection.execute(QueryBuilder.file_upload_request, { input: input })
  PresignedUpload.new(data['fileUploadRequest'], client: client)
end