Class: Pinata::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/pinata/client.rb

Constant Summary collapse

API_VERSION =
"v3"
BASE_DOMAIN =
"pinata.cloud"
API_BASE_URL =
"https://api.#{BASE_DOMAIN}/"
API_URL =
"#{API_BASE_URL}#{API_VERSION}/"
UPLOADS_URL =
"https://uploads.#{BASE_DOMAIN}/#{API_VERSION}/"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pinata_jwt:, adapter: Faraday.default_adapter, stubs: nil) ⇒ Client

Returns a new instance of Client.



13
14
15
16
17
18
19
# File 'lib/pinata/client.rb', line 13

def initialize(pinata_jwt:, adapter: Faraday.default_adapter, stubs: nil)
  @pinata_jwt = pinata_jwt
  @adapter = adapter

  # Test stubs for requests
  @stubs = stubs
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



11
12
13
# File 'lib/pinata/client.rb', line 11

def adapter
  @adapter
end

#pinata_jwtObject (readonly)

Returns the value of attribute pinata_jwt.



11
12
13
# File 'lib/pinata/client.rb', line 11

def pinata_jwt
  @pinata_jwt
end

Instance Method Details

#api_connectionObject



51
52
53
54
55
56
57
58
# File 'lib/pinata/client.rb', line 51

def api_connection
  @api_connection ||= Faraday.new(url: API_URL) do |conn|
    conn.request :authorization, :Bearer, pinata_jwt
    conn.request :json
    conn.response :json, content_type: "application/json"
    conn.adapter adapter, @stubs
  end
end

#authenticationObject



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

def authentication
  AuthenticationResource.new(self)
end

#filesObject



25
26
27
# File 'lib/pinata/client.rb', line 25

def files
  FilesResource.new(self)
end

#groupsObject



29
30
31
# File 'lib/pinata/client.rb', line 29

def groups
  GroupsResource.new(self)
end

#inspectObject



60
61
62
# File 'lib/pinata/client.rb', line 60

def inspect
  "#<Pinata::Client>"
end

#test_connectionObject



33
34
35
36
37
38
39
# File 'lib/pinata/client.rb', line 33

def test_connection
  @test_connection ||= Faraday.new(url: API_BASE_URL) do |conn|
    conn.request :authorization, :Bearer, pinata_jwt
    conn.response :json, content_type: "application/json"
    conn.adapter adapter, @stubs
  end
end

#upload_connectionObject



41
42
43
44
45
46
47
48
49
# File 'lib/pinata/client.rb', line 41

def upload_connection
  @upload_connection ||= Faraday.new(url: UPLOADS_URL) do |conn|
    conn.request :authorization, :Bearer, pinata_jwt
    conn.request :multipart
    conn.request :json
    conn.response :json, content_type: "application/json"
    conn.adapter adapter, @stubs
  end
end