dnsimple 8.7.1 → 8.8.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 +4 -4
- data/.github/workflows/auto-merge.yml +1 -1
- data/.github/workflows/ci.yml +1 -13
- data/.github/workflows/release.yml +2 -2
- data/.rubocop_dnsimple.yml +19 -76
- data/CHANGELOG.md +4 -0
- data/Gemfile +5 -2
- data/lib/dnsimple/client/billing.rb +2 -0
- data/lib/dnsimple/client/clients.rb +45 -0
- data/lib/dnsimple/client/dns_analytics.rb +30 -0
- data/lib/dnsimple/client/domains.rb +1 -0
- data/lib/dnsimple/client/domains_dnssec.rb +1 -0
- data/lib/dnsimple/client/domains_pushes.rb +0 -1
- data/lib/dnsimple/client/identity.rb +2 -0
- data/lib/dnsimple/client/registrar.rb +1 -0
- data/lib/dnsimple/client/registrar_registrant_changes.rb +1 -0
- data/lib/dnsimple/client/services.rb +1 -0
- data/lib/dnsimple/client/templates_records.rb +1 -0
- data/lib/dnsimple/client/tlds.rb +2 -0
- data/lib/dnsimple/client.rb +0 -1
- data/lib/dnsimple/default.rb +1 -2
- data/lib/dnsimple/error.rb +8 -2
- data/lib/dnsimple/options.rb +10 -0
- data/lib/dnsimple/response.rb +12 -0
- data/lib/dnsimple/struct/account.rb +2 -2
- data/lib/dnsimple/struct/certificate.rb +2 -2
- data/lib/dnsimple/struct/certificate_bundle.rb +0 -2
- data/lib/dnsimple/struct/certificate_purchase.rb +2 -2
- data/lib/dnsimple/struct/certificate_renewal.rb +2 -2
- data/lib/dnsimple/struct/charge.rb +3 -1
- data/lib/dnsimple/struct/collaborator.rb +2 -2
- data/lib/dnsimple/struct/contact.rb +2 -2
- data/lib/dnsimple/struct/delegation_signer_record.rb +2 -2
- data/lib/dnsimple/struct/dns_analytics.rb +18 -0
- data/lib/dnsimple/struct/dnssec.rb +2 -2
- data/lib/dnsimple/struct/domain.rb +2 -1
- data/lib/dnsimple/struct/domain_check.rb +2 -2
- data/lib/dnsimple/struct/domain_premium_price.rb +2 -2
- data/lib/dnsimple/struct/domain_price.rb +2 -2
- data/lib/dnsimple/struct/domain_push.rb +2 -2
- data/lib/dnsimple/struct/domain_registration.rb +2 -2
- data/lib/dnsimple/struct/domain_renewal.rb +2 -2
- data/lib/dnsimple/struct/domain_transfer.rb +2 -2
- data/lib/dnsimple/struct/email_forward.rb +2 -1
- data/lib/dnsimple/struct/extended_attribute.rb +2 -2
- data/lib/dnsimple/struct/oauth_token.rb +2 -2
- data/lib/dnsimple/struct/registrant_change.rb +2 -1
- data/lib/dnsimple/struct/registrant_change_check.rb +2 -1
- data/lib/dnsimple/struct/service.rb +2 -2
- data/lib/dnsimple/struct/template.rb +2 -2
- data/lib/dnsimple/struct/template_record.rb +2 -2
- data/lib/dnsimple/struct/tld.rb +2 -2
- data/lib/dnsimple/struct/transfer_lock.rb +2 -2
- data/lib/dnsimple/struct/user.rb +2 -2
- data/lib/dnsimple/struct/vanity_name_server.rb +2 -2
- data/lib/dnsimple/struct/webhook.rb +2 -2
- data/lib/dnsimple/struct/whoami.rb +2 -2
- data/lib/dnsimple/struct/whois_privacy.rb +2 -2
- data/lib/dnsimple/struct/whois_privacy_renewal.rb +2 -2
- data/lib/dnsimple/struct/zone.rb +2 -2
- data/lib/dnsimple/struct/zone_distribution.rb +2 -2
- data/lib/dnsimple/struct/zone_file.rb +2 -2
- data/lib/dnsimple/struct/zone_record.rb +2 -2
- data/lib/dnsimple/struct.rb +4 -3
- data/lib/dnsimple/version.rb +3 -1
- data/spec/dnsimple/client/dns_analytics_spec.rb +84 -0
- data/spec/dnsimple/client/registrar_delegation_spec.rb +4 -4
- data/spec/dnsimple/client/vanity_name_servers_spec.rb +1 -1
- data/spec/dnsimple/client/zones_records_spec.rb +2 -2
- data/spec/dnsimple/client_spec.rb +2 -2
- data/spec/dnsimple/extra_spec.rb +1 -1
- data/spec/fixtures.http/dnsAnalytics/success.http +20 -0
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 874a1e978f9845bb7a50c9f596fb30b22186730498972ed4c538664939c9e3d6
|
4
|
+
data.tar.gz: 1a1ec6d73ca64499a9e9462529d18f9e8643a619a349310c5e3b4e6f0c3d8050
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d28ef3ce63861291b5b95bb7d373685367c25bb33e3ddf42ee403e8d8c3963d8e0bf377280ca97560ac142855ee4b1d6de74cdad6241a534a3978c5aa6c17085
|
7
|
+
data.tar.gz: a0bef36ed74defb05757c8ed9e21d90198c5fee95530da0c77212f4fa303c5bb6ce4773989d5ed8ac2e8f78068e2d3d92044593fb53d2c14ea7a9f1c1a5fbe49
|
@@ -16,7 +16,7 @@ jobs:
|
|
16
16
|
if: github.event.pull_request.user.login == 'dependabot[bot]' && contains(github.event.pull_request.labels.*.name, 'automerge')
|
17
17
|
steps:
|
18
18
|
- name: Wait for tests to succeed
|
19
|
-
uses: lewagon/wait-on-check-action@v1.3.
|
19
|
+
uses: lewagon/wait-on-check-action@v1.3.3
|
20
20
|
timeout-minutes: 15
|
21
21
|
with:
|
22
22
|
ref: ${{ github.ref }}
|
data/.github/workflows/ci.yml
CHANGED
@@ -34,6 +34,7 @@ jobs:
|
|
34
34
|
- '3.0'
|
35
35
|
- '3.1'
|
36
36
|
- '3.2'
|
37
|
+
- '3.3'
|
37
38
|
- 'ruby-head'
|
38
39
|
- 'truffleruby-head'
|
39
40
|
steps:
|
@@ -44,16 +45,3 @@ jobs:
|
|
44
45
|
ruby-version: ${{ matrix.ruby-version }}
|
45
46
|
bundler-cache: true
|
46
47
|
- run: bundle exec rake
|
47
|
-
|
48
|
-
slack-workflow-status:
|
49
|
-
if: always()
|
50
|
-
name: Post Workflow Status To Slack
|
51
|
-
needs:
|
52
|
-
- test
|
53
|
-
runs-on: ubuntu-latest
|
54
|
-
steps:
|
55
|
-
- name: Slack Workflow Notification
|
56
|
-
uses: Gamesight/slack-workflow-status@master
|
57
|
-
with:
|
58
|
-
repo_token: ${{secrets.GITHUB_TOKEN}}
|
59
|
-
slack_webhook_url: ${{secrets.SLACK_WEBHOOK_URL_DEVELOPMENT}}
|
@@ -7,11 +7,11 @@ on:
|
|
7
7
|
jobs:
|
8
8
|
publish:
|
9
9
|
name: Release to RubyGems
|
10
|
-
runs-on: ubuntu-
|
10
|
+
runs-on: ubuntu-latest
|
11
11
|
|
12
12
|
steps:
|
13
13
|
- name: Wait for tests to succeed
|
14
|
-
uses: lewagon/wait-on-check-action@v1.3.
|
14
|
+
uses: lewagon/wait-on-check-action@v1.3.3
|
15
15
|
with:
|
16
16
|
ref: 'refs/heads/main'
|
17
17
|
running-workflow-name: 'Release to RubyGems'
|
data/.rubocop_dnsimple.yml
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
---
|
2
1
|
# Defaults https://github.com/bbatsov/rubocop/blob/master/config/default.yml
|
3
2
|
#
|
4
3
|
# References:
|
@@ -25,8 +24,8 @@ Layout/AccessModifierIndentation:
|
|
25
24
|
Layout/BlockEndNewline:
|
26
25
|
Enabled: false
|
27
26
|
|
28
|
-
# Generally, the keyword style uses a lot of space. This is particularly true
|
29
|
-
#
|
27
|
+
# Generally, the keyword style uses a lot of space. This is particularly true when
|
28
|
+
# you use case/if statements, in combination with a long-name variable.
|
30
29
|
#
|
31
30
|
# invoice_error_message = case error
|
32
31
|
# when 1 == 1
|
@@ -123,10 +122,9 @@ Naming/RescuedExceptionsVariableName:
|
|
123
122
|
Naming/MethodParameterName:
|
124
123
|
Enabled: false
|
125
124
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
Enabled: false
|
125
|
+
Style/AccessorGrouping:
|
126
|
+
Enabled: true
|
127
|
+
EnforcedStyle: separated
|
130
128
|
|
131
129
|
# Do not use "and" or "or" in conditionals, but for readability we can use it
|
132
130
|
# to chain executions. Just beware of operator order.
|
@@ -137,7 +135,7 @@ Style/AndOr:
|
|
137
135
|
Style/BarePercentLiterals:
|
138
136
|
EnforcedStyle: percent_q
|
139
137
|
|
140
|
-
#
|
138
|
+
# Pick one option for consistency.
|
141
139
|
Style/BlockDelimiters:
|
142
140
|
EnforcedStyle: braces_for_chaining
|
143
141
|
AllowedMethods:
|
@@ -147,11 +145,9 @@ Style/BlockDelimiters:
|
|
147
145
|
Style/EmptyElse:
|
148
146
|
EnforcedStyle: empty
|
149
147
|
|
150
|
-
#
|
151
|
-
# One-line methods are not exceptionally nice in Ruby.
|
152
|
-
# Just ignore this cop for now.
|
148
|
+
# Pick one option for consistency.
|
153
149
|
Style/EmptyMethod:
|
154
|
-
|
150
|
+
EnforcedStyle: expanded
|
155
151
|
|
156
152
|
# We don't care about the format style.
|
157
153
|
# In most cases we use %, but not at the point we want to enforce it
|
@@ -159,10 +155,8 @@ Style/EmptyMethod:
|
|
159
155
|
Style/FormatString:
|
160
156
|
Enabled: false
|
161
157
|
|
162
|
-
# Annotated tokens (like %<foo>s) are a good thing,
|
163
|
-
#
|
164
|
-
# %s is a simpler and straightforward version that works in almost all cases.
|
165
|
-
# So don't complain.
|
158
|
+
# Annotated tokens (like %<foo>s) are a good thing, but in most cases we don't need them.
|
159
|
+
# %s is a simpler and straightforward version that works in almost all cases. So don't complain.
|
166
160
|
Style/FormatStringToken:
|
167
161
|
Enabled: false
|
168
162
|
|
@@ -174,21 +168,6 @@ Style/HashSyntax:
|
|
174
168
|
# that looks nicer with the old rocket syntax.
|
175
169
|
- 'Rakefile'
|
176
170
|
|
177
|
-
# Enforces usage of Hash#each_key and Hash#each_value (vs. Hash#keys.each
|
178
|
-
# and Hash#values.each).
|
179
|
-
Style/HashEachMethods:
|
180
|
-
Enabled: true
|
181
|
-
|
182
|
-
# Enforce the use of Hash#TransformKeys introduced in Ruby 2.5 to transform
|
183
|
-
# Hash keys.
|
184
|
-
Style/HashTransformKeys:
|
185
|
-
Enabled: true
|
186
|
-
|
187
|
-
# Enforce the use of Hash#TransformValues introduced in Ruby 2.5 to transform
|
188
|
-
# Hash values.
|
189
|
-
Style/HashTransformValues:
|
190
|
-
Enabled: true
|
191
|
-
|
192
171
|
# We want to be able to decide when to use one-line if/unless modifiers.
|
193
172
|
Style/IfUnlessModifier:
|
194
173
|
Enabled: false
|
@@ -220,11 +199,6 @@ Style/NumericLiterals:
|
|
220
199
|
- 'spec/**/*_spec.rb'
|
221
200
|
- 'test/**/*_test.rb'
|
222
201
|
|
223
|
-
# For years, %w() has been the de-facto standard.
|
224
|
-
# A lot of libraries are using (). Switching to [] would be a nightmare.
|
225
|
-
Style/PercentLiteralDelimiters:
|
226
|
-
Enabled: false
|
227
|
-
|
228
202
|
# Enable but only for multiple returns value.
|
229
203
|
#
|
230
204
|
# return foo, bar
|
@@ -236,17 +210,7 @@ Style/PercentLiteralDelimiters:
|
|
236
210
|
Style/RedundantReturn:
|
237
211
|
AllowMultipleReturnValues: true
|
238
212
|
|
239
|
-
#
|
240
|
-
Style/RegexpLiteral:
|
241
|
-
Enabled: false
|
242
|
-
|
243
|
-
# There are cases were the inline rescue is ok. We can either downgrade
|
244
|
-
# the severity, or rely on the developer judgement on a case-by-case basis.
|
245
|
-
Style/RescueModifier:
|
246
|
-
Enabled: false
|
247
|
-
|
248
|
-
# This is quite annoying, especially in cases where we don't control it
|
249
|
-
# (e.g. schema.rb).
|
213
|
+
# This is quite annoying, especially in cases where we don't control it (e.g. schema.rb).
|
250
214
|
Style/SymbolArray:
|
251
215
|
Enabled: false
|
252
216
|
|
@@ -261,9 +225,8 @@ Style/StringLiterals:
|
|
261
225
|
Enabled: false
|
262
226
|
EnforcedStyle: double_quotes
|
263
227
|
|
264
|
-
#
|
228
|
+
# Pick one option for consistency.
|
265
229
|
Style/StringLiteralsInInterpolation:
|
266
|
-
Enabled: false
|
267
230
|
EnforcedStyle: double_quotes
|
268
231
|
|
269
232
|
# It's nice to be consistent. The trailing comma also allows easy reordering,
|
@@ -290,20 +253,8 @@ Style/WordArray:
|
|
290
253
|
EnforcedStyle: percent
|
291
254
|
MinSize: 3
|
292
255
|
|
293
|
-
#
|
294
|
-
#
|
295
|
-
# According to this cop, the following statement is bad:
|
296
|
-
#
|
297
|
-
# "https" == uri.scheme
|
298
|
-
#
|
299
|
-
# Whereas the following is considered good:
|
300
|
-
#
|
301
|
-
# uri.scheme == "https"
|
302
|
-
Style/YodaCondition:
|
303
|
-
Enabled: false
|
304
|
-
|
305
|
-
# For the same reason of EndAlignment, aligning with the case may have
|
306
|
-
# a bad impact on a case after a very long variable.
|
256
|
+
# For the same reason of EndAlignment, aligning with the case may have a bad impact
|
257
|
+
# on a case after a very long variable.
|
307
258
|
#
|
308
259
|
# invoice_error_message = case error
|
309
260
|
# when 1 == 1
|
@@ -325,32 +276,24 @@ Layout/DotPosition:
|
|
325
276
|
Layout/EmptyLines:
|
326
277
|
Enabled: false
|
327
278
|
|
328
|
-
# This is buggy. It detects as a style violation a few `class`
|
329
|
-
# and `module` definitions
|
330
|
-
Layout/EmptyLinesAroundArguments:
|
331
|
-
Enabled: false
|
332
|
-
|
333
279
|
Layout/EmptyLinesAroundBlockBody:
|
334
280
|
Exclude:
|
335
281
|
# RSpec is all made of blocks. Disable this config in RSpec
|
336
|
-
# to be consistent with EmptyLinesAroundClassBody
|
337
|
-
# and EmptyLinesAroundModuleBody
|
282
|
+
# to be consistent with EmptyLinesAroundClassBody and EmptyLinesAroundModuleBody
|
338
283
|
- 'spec/**/*_spec.rb'
|
339
284
|
- 'test/**/*_test.rb'
|
340
285
|
|
341
|
-
#
|
342
|
-
# Just be consistent with the rest of the surrounding code.
|
286
|
+
# Pick one option for consistency. beginning+ending is the most used approach.
|
343
287
|
Layout/EmptyLinesAroundClassBody:
|
344
|
-
|
288
|
+
EnforcedStyle: empty_lines_except_namespace
|
345
289
|
|
346
290
|
# We're ok with it. We use it quite often for method-level rescue statements.
|
347
291
|
Layout/EmptyLinesAroundExceptionHandlingKeywords:
|
348
292
|
Enabled: false
|
349
293
|
|
350
|
-
#
|
351
|
-
# Just be consistent with the rest of the surrounding code.
|
294
|
+
# Pick one option for consistency. beginning+ending is the most used approach.
|
352
295
|
Layout/EmptyLinesAroundModuleBody:
|
353
|
-
|
296
|
+
EnforcedStyle: empty_lines_except_namespace
|
354
297
|
|
355
298
|
# This is quite buggy, as it doesn't recognize double lines.
|
356
299
|
Layout/EmptyLineBetweenDefs:
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,10 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
|
|
4
4
|
|
5
5
|
## main
|
6
6
|
|
7
|
+
## 8.8.0
|
8
|
+
|
9
|
+
- NEW: Added `Dnsimple::Client::DnsAnalytics#query` to query and pull data from the DNS Analytics API endpoint(dnsimple/dnsimple-ruby#375)
|
10
|
+
|
7
11
|
## 8.7.1
|
8
12
|
|
9
13
|
ENHANCEMENTS:
|
data/Gemfile
CHANGED
@@ -5,7 +5,10 @@ source 'https://rubygems.org'
|
|
5
5
|
gemspec
|
6
6
|
|
7
7
|
gem 'coveralls', require: false
|
8
|
-
gem 'rubocop', '1.
|
9
|
-
gem 'rubocop-performance', '1.
|
8
|
+
gem 'rubocop', '1.59.0', require: false
|
9
|
+
gem 'rubocop-performance', '1.20.1', require: false
|
10
10
|
gem 'rubocop-rake', '0.6.0', require: false
|
11
11
|
gem 'rubocop-rspec', '2.25.0', require: false
|
12
|
+
gem "base64", "~> 0.2.0"
|
13
|
+
gem "bigdecimal", "~> 3.1"
|
14
|
+
gem "csv", "~> 3.2"
|
@@ -3,6 +3,7 @@
|
|
3
3
|
module Dnsimple
|
4
4
|
class Client
|
5
5
|
module Billing
|
6
|
+
|
6
7
|
# List the billing charges for the account.
|
7
8
|
#
|
8
9
|
# @see https://developer.dnsimple.com/v2/billing/#listCharges
|
@@ -30,6 +31,7 @@ module Dnsimple
|
|
30
31
|
Dnsimple::PaginatedResponse.new(response, response["data"].map { |r| Struct::Charge.new(r) })
|
31
32
|
end
|
32
33
|
alias list_charges charges
|
34
|
+
|
33
35
|
end
|
34
36
|
end
|
35
37
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Dnsimple
|
4
|
+
|
4
5
|
class Client
|
5
6
|
|
6
7
|
# @return [Dnsimple::Client::AccountsService] The account-related API proxy.
|
@@ -28,6 +29,11 @@ module Dnsimple
|
|
28
29
|
@services[:domains] ||= Client::DomainsService.new(self)
|
29
30
|
end
|
30
31
|
|
32
|
+
# @return [Dnsimple::Client::DnsAnalyticsService] The DNS Analytics API proxy.
|
33
|
+
def dns_analytics
|
34
|
+
@services[:dns_analytics] ||= Client::DnsAnalyticsService.new(self)
|
35
|
+
end
|
36
|
+
|
31
37
|
# @return [Dnsimple::Client::IdentityService] The identity-related API proxy.
|
32
38
|
def identity
|
33
39
|
@services[:auth] ||= Client::IdentityService.new(self)
|
@@ -117,26 +123,34 @@ module Dnsimple
|
|
117
123
|
require_relative 'accounts'
|
118
124
|
|
119
125
|
class AccountsService < ClientService
|
126
|
+
|
120
127
|
include Client::Accounts
|
128
|
+
|
121
129
|
end
|
122
130
|
|
123
131
|
require_relative 'billing'
|
124
132
|
|
125
133
|
class BillingService < ClientService
|
134
|
+
|
126
135
|
include Client::Billing
|
136
|
+
|
127
137
|
end
|
128
138
|
|
129
139
|
require_relative 'certificates'
|
130
140
|
|
131
141
|
class CertificatesService < ClientService
|
142
|
+
|
132
143
|
include Client::Certificates
|
144
|
+
|
133
145
|
end
|
134
146
|
|
135
147
|
|
136
148
|
require_relative 'contacts'
|
137
149
|
|
138
150
|
class ContactsService < ClientService
|
151
|
+
|
139
152
|
include Client::Contacts
|
153
|
+
|
140
154
|
end
|
141
155
|
|
142
156
|
|
@@ -148,26 +162,40 @@ module Dnsimple
|
|
148
162
|
require_relative 'domains_collaborators'
|
149
163
|
|
150
164
|
class DomainsService < ClientService
|
165
|
+
|
151
166
|
include Client::Domains
|
152
167
|
include Client::DomainsDelegationSignerRecords
|
153
168
|
include Client::DomainsDnssec
|
154
169
|
include Client::DomainsEmailForwards
|
155
170
|
include Client::DomainsPushes
|
156
171
|
include Client::DomainsCollaborators
|
172
|
+
|
173
|
+
end
|
174
|
+
|
175
|
+
require_relative 'dns_analytics'
|
176
|
+
|
177
|
+
class DnsAnalyticsService < ClientService
|
178
|
+
|
179
|
+
include Client::DnsAnalytics
|
180
|
+
|
157
181
|
end
|
158
182
|
|
159
183
|
|
160
184
|
require_relative 'identity'
|
161
185
|
|
162
186
|
class IdentityService < ClientService
|
187
|
+
|
163
188
|
include Client::Identity
|
189
|
+
|
164
190
|
end
|
165
191
|
|
166
192
|
|
167
193
|
require_relative 'oauth'
|
168
194
|
|
169
195
|
class OauthService < ClientService
|
196
|
+
|
170
197
|
include Client::Oauth
|
198
|
+
|
171
199
|
end
|
172
200
|
|
173
201
|
require_relative 'registrar'
|
@@ -178,12 +206,14 @@ module Dnsimple
|
|
178
206
|
require_relative 'registrar_delegation'
|
179
207
|
|
180
208
|
class RegistrarService < ClientService
|
209
|
+
|
181
210
|
include Client::Registrar
|
182
211
|
include Client::RegistrarAutoRenewal
|
183
212
|
include Client::RegistrarDelegation
|
184
213
|
include Client::RegistrarRegistrantChanges
|
185
214
|
include Client::RegistrarTransferLock
|
186
215
|
include Client::RegistrarWhoisPrivacy
|
216
|
+
|
187
217
|
end
|
188
218
|
|
189
219
|
|
@@ -191,8 +221,10 @@ module Dnsimple
|
|
191
221
|
require_relative 'services_domains'
|
192
222
|
|
193
223
|
class ServicesService < ClientService
|
224
|
+
|
194
225
|
include Client::Services
|
195
226
|
include Client::ServicesDomains
|
227
|
+
|
196
228
|
end
|
197
229
|
|
198
230
|
|
@@ -201,23 +233,29 @@ module Dnsimple
|
|
201
233
|
require_relative 'templates_records'
|
202
234
|
|
203
235
|
class TemplatesService < ClientService
|
236
|
+
|
204
237
|
include Client::Templates
|
205
238
|
include Client::TemplatesDomains
|
206
239
|
include Client::TemplatesRecords
|
240
|
+
|
207
241
|
end
|
208
242
|
|
209
243
|
|
210
244
|
require_relative 'tlds'
|
211
245
|
|
212
246
|
class TldsService < ClientService
|
247
|
+
|
213
248
|
include Client::Tlds
|
249
|
+
|
214
250
|
end
|
215
251
|
|
216
252
|
|
217
253
|
require_relative 'vanity_name_servers'
|
218
254
|
|
219
255
|
class VanityNameServersService < ClientService
|
256
|
+
|
220
257
|
include Client::VanityNameServers
|
258
|
+
|
221
259
|
end
|
222
260
|
|
223
261
|
|
@@ -226,16 +264,20 @@ module Dnsimple
|
|
226
264
|
require_relative 'zones_distributions'
|
227
265
|
|
228
266
|
class ZonesService < ClientService
|
267
|
+
|
229
268
|
include Client::Zones
|
230
269
|
include Client::ZonesRecords
|
231
270
|
include Client::ZonesDistributions
|
271
|
+
|
232
272
|
end
|
233
273
|
|
234
274
|
|
235
275
|
require_relative 'webhooks'
|
236
276
|
|
237
277
|
class WebhooksService < ClientService
|
278
|
+
|
238
279
|
include Client::Webhooks
|
280
|
+
|
239
281
|
end
|
240
282
|
|
241
283
|
end
|
@@ -246,6 +288,9 @@ module Dnsimple
|
|
246
288
|
# these static methods return directly the underlying data objects.
|
247
289
|
# Therefore, it's not possible to access response metadata such as throttling or pagination info.
|
248
290
|
module V2
|
291
|
+
|
249
292
|
extend Client::Identity::StaticHelpers
|
293
|
+
|
250
294
|
end
|
295
|
+
|
251
296
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dnsimple
|
4
|
+
class Client
|
5
|
+
module DnsAnalytics
|
6
|
+
|
7
|
+
# Queries DNS Analytics data for the provided account
|
8
|
+
#
|
9
|
+
# @see https://developer.dnsimple.com/v2/dns-analytics#query
|
10
|
+
#
|
11
|
+
# @param [Integer] account_id the account ID
|
12
|
+
# @param [Hash] options the filtering, sorting, and grouping options
|
13
|
+
# @option options [Integer] :page current page (pagination)
|
14
|
+
# @option options [Integer] :per_page number of entries to return (pagination)
|
15
|
+
# @option options [String] :sort sorting policy
|
16
|
+
# @option options [Hash] :filter filtering policy
|
17
|
+
# @option options [String] :groupings groupings policy
|
18
|
+
# @return [Dnsimple::PaginatedResponseWithQuery<Dnsimple::Struct::DnsAnalytics>]
|
19
|
+
#
|
20
|
+
# @raise [Dnsimple::RequestError]
|
21
|
+
def query(account_id, options = {})
|
22
|
+
list_options = Options::ListOptions.new(options)
|
23
|
+
response = client.get(Client.versioned("/%s/dns_analytics" % [account_id]), list_options)
|
24
|
+
|
25
|
+
Dnsimple::PaginatedResponseWithQuery.new(response, response["data"]["rows"].map { |row| Struct::DnsAnalytics.new(response["data"]["headers"].zip(row)) })
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -19,6 +19,7 @@ module Dnsimple
|
|
19
19
|
|
20
20
|
|
21
21
|
module StaticHelpers
|
22
|
+
|
22
23
|
# Calls {Identity#whoami} and directly returns the response data.
|
23
24
|
#
|
24
25
|
# @see https://developer.dnsimple.com/v2/identity/#whoami
|
@@ -30,6 +31,7 @@ module Dnsimple
|
|
30
31
|
def whoami(client, *args)
|
31
32
|
client.identity.whoami(*args).data
|
32
33
|
end
|
34
|
+
|
33
35
|
end
|
34
36
|
|
35
37
|
end
|
data/lib/dnsimple/client/tlds.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
module Dnsimple
|
4
4
|
class Client
|
5
5
|
module Tlds
|
6
|
+
|
6
7
|
# Lists the TLDs available for registration
|
7
8
|
#
|
8
9
|
# @see https://developer.dnsimple.com/v2/tlds/#listTlds
|
@@ -91,6 +92,7 @@ module Dnsimple
|
|
91
92
|
|
92
93
|
Dnsimple::CollectionResponse.new(response, response["data"].map { |r| Struct::ExtendedAttribute.new(r) })
|
93
94
|
end
|
95
|
+
|
94
96
|
end
|
95
97
|
end
|
96
98
|
end
|
data/lib/dnsimple/client.rb
CHANGED
data/lib/dnsimple/default.rb
CHANGED
data/lib/dnsimple/error.rb
CHANGED
@@ -7,7 +7,9 @@ module Dnsimple
|
|
7
7
|
|
8
8
|
# RequestError is raised when an API request fails for an client, a server error or invalid request information.
|
9
9
|
class RequestError < Error
|
10
|
-
|
10
|
+
|
11
|
+
attr_reader :http_response
|
12
|
+
attr_reader :attribute_errors
|
11
13
|
|
12
14
|
def initialize(http_response)
|
13
15
|
@http_response = http_response
|
@@ -49,7 +51,10 @@ module Dnsimple
|
|
49
51
|
end
|
50
52
|
|
51
53
|
class OAuthInvalidRequestError < Error
|
52
|
-
|
54
|
+
|
55
|
+
attr_reader :http_response
|
56
|
+
attr_reader :error
|
57
|
+
attr_reader :error_description
|
53
58
|
|
54
59
|
def initialize(http_response)
|
55
60
|
@http_response = http_response
|
@@ -63,6 +68,7 @@ module Dnsimple
|
|
63
68
|
def message
|
64
69
|
"#{error}: #{error_description}"
|
65
70
|
end
|
71
|
+
|
66
72
|
end
|
67
73
|
|
68
74
|
end
|