Class: Pinata::FilesResource

Inherits:
Resource show all
Defined in:
lib/pinata/resources/files.rb

Instance Attribute Summary

Attributes inherited from Resource

#client

Instance Method Summary collapse

Methods inherited from Resource

#initialize

Constructor Details

This class inherits a constructor from Pinata::Resource

Instance Method Details

#delete(file_id:) ⇒ Object



40
41
42
# File 'lib/pinata/resources/files.rb', line 40

def delete(file_id:)
  File.new api_delete_request("files/#{file_id}").body.dig("data")
end

#get(file_id:) ⇒ Object



21
22
23
# File 'lib/pinata/resources/files.rb', line 21

def get(file_id:)
  File.new api_get_request("files/#{file_id}").body.dig("data")
end

#list(**params) ⇒ Object



16
17
18
19
# File 'lib/pinata/resources/files.rb', line 16

def list(**params)
  response = api_get_request("files", params: params)
  Collection.from_response(response, key: "files", type: File)
end

#sign(gateway:, file_cid:, expires:, date: Time.now.to_i, url_method: "GET") ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/pinata/resources/files.rb', line 25

def sign(gateway:, file_cid:, expires:, date: Time.now.to_i,
  url_method: "GET")
  payload = {
    url: "https://#{gateway}/files/#{file_cid}",
    date: date,
    expires: expires,
    method: url_method
  }
  api_post_request("files/sign", body: payload).body["data"]
end

#update(file_id:, **attributes) ⇒ Object



36
37
38
# File 'lib/pinata/resources/files.rb', line 36

def update(file_id:, **attributes)
  File.new api_put_request("files/#{file_id}", body: attributes).body["data"]
end

#upload(file:, group_id: nil, name: nil, mime_type: nil, metadata: nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/pinata/resources/files.rb', line 5

def upload(file:, group_id: nil, name: nil, mime_type: nil, metadata: nil)
  validate(file: file)
  mime_type ||= Marcel::MimeType.for(file)
  payload = {file: Faraday::UploadIO.new(file, mime_type)}
  payload[:name] = name unless name.nil?
  payload[:group_id] = group_id unless group_id.nil?
  payload[:keyvalues] =  unless .nil?
  File.new upload_post_request("files", body: payload,
    headers: {"Content-Type" => "multipart/form-data"}).body["data"]
end

#validate(file:) ⇒ Object

Raises:

  • (ArgumentError)


44
45
46
# File 'lib/pinata/resources/files.rb', line 44

def validate(file:)
  raise ArgumentError, "`file` is required" if file.nil?
end