cloudflare_client_rb 4.2.5 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 28ee79e1c4cf490ebd1c76ac063d78b33fcbb599
4
- data.tar.gz: 4959f3b3ba24fea4815c16ea1f5079c36f5b73f6
3
+ metadata.gz: 6b750c4cf1d2406e217504fe9cbf195faf7dbc87
4
+ data.tar.gz: 97a75d61e8d7f758425e3fb0c01d00bcf978f372
5
5
  SHA512:
6
- metadata.gz: 3deaa8ca8298f6b76df9353e68aedef1f4a8f568c62a3c8d6147829e6927a1366bb5bc803389843a42eb107d1505a3f19c138761bc4266791f69a81237cf6c91
7
- data.tar.gz: b3d80e5762604b3063465ed75e14f9a9c0638229fe4fdc8ca9fcf78be0329032b83251dd9970d4e2379a6bcac6399721ae7287a88ce19219986a096b10847659
6
+ metadata.gz: b10b81567bd45527a8826e441cfb429158eaca341532d3cff5d1d02c895dea0334ea3e91c7040707cd714cedccc9b71fdae3236f8fefffedf618c538b5966e8b
7
+ data.tar.gz: 05c0e5b3880770e0291107b7608a4d9bdb18be396404cdd5f720c9ea06fa1c6d94a0b16c9b2ba95dd70271d64fcec649de91c5ce38de09cfef97f248ac5b64cf
@@ -4,7 +4,7 @@ class CloudflareClient
4
4
  attr_reader :response, :method, :uri, :url
5
5
 
6
6
  def initialize(message = nil, response = nil, method = nil, uri = nil, url = nil)
7
- super("#{message}, #{method.upcase} #{url} #{response.body}")
7
+ super("#{message}, #{method&.upcase} #{url} #{response&.body}")
8
8
  @response = response
9
9
  @method = method
10
10
  @uri = uri
@@ -0,0 +1,26 @@
1
+ class CloudflareClient::Value < CloudflareClient::Namespace
2
+ attr_reader :namespace_id
3
+
4
+ def initialize(args)
5
+ @namespace_id = args.delete(:namespace_id)
6
+ id_check(:namespace_id, namespace_id)
7
+ super
8
+ end
9
+
10
+ def write(key:, value:, expiration_ttl: nil, metadata: nil)
11
+ if expiration_ttl
12
+ raise RuntimeError, 'expiration_ttl must be an integer' unless expiration_ttl.kind_of?(Integer)
13
+ end
14
+
15
+ data = metadata ? { value: value, metadata: metadata} : value
16
+ cf_put(path: "/accounts/#{account_id}/storage/kv/namespaces/#{namespace_id}/values/#{key}", data: data, params: {expiration_ttl: expiration_ttl})
17
+ end
18
+
19
+ def read(key:)
20
+ cf_get(path: "/accounts/#{account_id}/storage/kv/namespaces/#{namespace_id}/values/#{key}", raw: true)
21
+ end
22
+
23
+ def delete(key:)
24
+ cf_delete(path: "/accounts/#{account_id}/storage/kv/namespaces/#{namespace_id}/values/#{key}")
25
+ end
26
+ end
@@ -0,0 +1,12 @@
1
+ class CloudflareClient::Namespace < CloudflareClient
2
+ Dir[File.expand_path('../namespace/*.rb', __FILE__)].each {|f| require f}
3
+
4
+ attr_reader :account_id
5
+
6
+ def initialize(args)
7
+ @account_id = args.delete(:account_id)
8
+ id_check(:account_id, account_id)
9
+ super
10
+ end
11
+
12
+ end
@@ -1,3 +1,3 @@
1
1
  class CloudflareClient
2
- VERSION = "4.2.5"
2
+ VERSION = "4.5.0"
3
3
  end
@@ -0,0 +1,24 @@
1
+ require_relative 'custom_hostname'
2
+ # https://api.cloudflare.com/#custom-hostname-for-a-zone-list-custom-hostnames
3
+ class CloudflareClient::Zone::CustomHostnameV2 < CloudflareClient::Zone::CustomHostname
4
+
5
+ def create(hostname:, ssl: DEFAULT_SSL_PROPERTIES, custom_metadata: {}, custom_origin_server: nil)
6
+ super
7
+ end
8
+
9
+ def list(hostname: nil, id: nil, page: 1, per_page: 50, order: 'ssl', direction: 'desc', ssl: 0)
10
+ super
11
+ end
12
+
13
+ def show(id:)
14
+ super
15
+ end
16
+
17
+ def update(id:, ssl: {}, custom_metadata: nil, custom_origin_server: nil)
18
+ super
19
+ end
20
+
21
+ def delete(id:)
22
+ super
23
+ end
24
+ end
@@ -26,7 +26,7 @@ class CloudflareClient::Zone::CustomSSL < CloudflareClient::Zone::Base
26
26
  params = {page: page, per_page: per_page}
27
27
  params[:match] = match
28
28
  params[:direction] = direction
29
- cf_get(path: "/zones/#{zone_id}/custom_certficates", params: params)
29
+ cf_get(path: "/zones/#{zone_id}/custom_certificates", params: params)
30
30
  end
31
31
 
32
32
  ##
@@ -51,10 +51,10 @@ class CloudflareClient
51
51
  websockets
52
52
  ].freeze
53
53
 
54
- def initialize(auth_key: nil, email: nil)
55
- raise('Missing auth_key') if auth_key.nil?
56
- raise('missing email') if email.nil?
57
- @cf_client ||= build_client(auth_key: auth_key, email: email)
54
+ def initialize(auth_key: nil, email: nil, auth_token: nil, &block)
55
+ raise('Missing auth_key or auth_token') if auth_key.nil? && auth_token.nil?
56
+ raise('missing email') if email.nil? && !auth_key.nil?
57
+ @cf_client ||= build_client(auth_key: auth_key, email: email, auth_token: auth_token, &block)
58
58
  end
59
59
 
60
60
  #TODO: add the time based stuff
@@ -131,19 +131,24 @@ class CloudflareClient
131
131
  end
132
132
 
133
133
  def build_client(params)
134
- raise('Missing auth_key') if params[:auth_key].nil?
135
- raise('Missing auth email') if params[:email].nil?
136
134
  # we need multipart form encoding for some of these operations
137
135
  client = Faraday.new(url: API_BASE) do |conn|
138
136
  conn.request :multipart
139
137
  conn.request :url_encoded
140
138
  conn.use Middleware::Response::RaiseError
141
- conn.adapter :net_http
142
139
  end
143
- client.headers['X-Auth-Key'] = params[:auth_key]
144
- client.headers['X-Auth-User-Service-Key '] = params[:auth_key] #FIXME, is this always the same?
145
- client.headers['X-Auth-Email'] = params[:email]
140
+
146
141
  client.headers['Content-Type'] = 'application/json'
142
+ if params[:auth_token]
143
+ client.headers['Authorization'] = "Bearer #{params[:auth_token]}"
144
+ else
145
+ client.headers['X-Auth-Key'] = params[:auth_key]
146
+ client.headers['X-Auth-User-Service-Key '] = params[:auth_key] #FIXME, is this always the same?
147
+ client.headers['X-Auth-Email'] = params[:email]
148
+ end
149
+
150
+ yield client if block_given?
151
+ client.adapter :net_http
147
152
  client
148
153
  end
149
154
 
@@ -175,10 +180,13 @@ class CloudflareClient
175
180
  JSON.parse(result.body, symbolize_names: true)
176
181
  end
177
182
 
178
- def cf_put(path: nil, data: nil)
183
+ def cf_put(path: nil, data: nil, params: nil)
179
184
  result = @cf_client.put do |request|
180
185
  request.url(API_BASE + path) unless path.nil?
181
186
  request.body = data.to_json unless data.nil?
187
+ unless params.nil?
188
+ request.params = params if params.values.any? { |i| !i.nil? }
189
+ end
182
190
  end
183
191
  JSON.parse(result.body, symbolize_names: true)
184
192
  end
@@ -204,4 +212,4 @@ class CloudflareClient
204
212
  return false unless POSSIBLE_API_SETTINGS.include?(name)
205
213
  true
206
214
  end
207
- end
215
+ end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudflare_client_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.5
4
+ version: 4.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ian waters
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-26 00:00:00.000000000 Z
11
+ date: 2021-09-13 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description:
13
+ description:
14
14
  email: iwaters@zendesk.com
15
15
  executables: []
16
16
  extensions: []
@@ -19,6 +19,8 @@ files:
19
19
  - lib/cloudflare_client.rb
20
20
  - lib/cloudflare_client/certificate.rb
21
21
  - lib/cloudflare_client/middleware/response/raise_error.rb
22
+ - lib/cloudflare_client/namespace.rb
23
+ - lib/cloudflare_client/namespace/value.rb
22
24
  - lib/cloudflare_client/organization.rb
23
25
  - lib/cloudflare_client/organization/access_rule.rb
24
26
  - lib/cloudflare_client/organization/invite.rb
@@ -33,6 +35,7 @@ files:
33
35
  - lib/cloudflare_client/zone/analytics.rb
34
36
  - lib/cloudflare_client/zone/base.rb
35
37
  - lib/cloudflare_client/zone/custom_hostname.rb
38
+ - lib/cloudflare_client/zone/custom_hostname_v2.rb
36
39
  - lib/cloudflare_client/zone/custom_page.rb
37
40
  - lib/cloudflare_client/zone/custom_ssl.rb
38
41
  - lib/cloudflare_client/zone/dns.rb
@@ -52,9 +55,9 @@ files:
52
55
  - lib/cloudflare_client/zone/subscription.rb
53
56
  homepage: https://github.com/zendesk/cloudflare_client_rb
54
57
  licenses:
55
- - Apache License Version 2.0
58
+ - Apache-2.0
56
59
  metadata: {}
57
- post_install_message:
60
+ post_install_message:
58
61
  rdoc_options: []
59
62
  require_paths:
60
63
  - lib
@@ -69,9 +72,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
72
  - !ruby/object:Gem::Version
70
73
  version: '0'
71
74
  requirements: []
72
- rubyforge_project:
75
+ rubyforge_project:
73
76
  rubygems_version: 2.6.11
74
- signing_key:
77
+ signing_key:
75
78
  specification_version: 4
76
79
  summary: lightweight cloudflare api client
77
80
  test_files: []