dnsimple 4.2.0 → 4.3.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/.rubocop_dnsimple.yml +128 -74
- data/.travis.yml +2 -2
- data/CHANGELOG.md +9 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/dnsimple.gemspec +2 -2
- data/lib/dnsimple/client/certificates.rb +24 -0
- data/lib/dnsimple/client/registrar.rb +4 -4
- data/lib/dnsimple/version.rb +1 -1
- data/spec/dnsimple/client/accounts_spec.rb +4 -4
- data/spec/dnsimple/client/certificates_spec.rb +43 -22
- data/spec/dnsimple/client/client_service_spec.rb +6 -6
- data/spec/dnsimple/client/collaborators_spec.rb +20 -20
- data/spec/dnsimple/client/contacts_spec.rb +30 -30
- data/spec/dnsimple/client/domains_delegation_signer_records_spec.rb +25 -25
- data/spec/dnsimple/client/domains_dnssec_spec.rb +18 -18
- data/spec/dnsimple/client/domains_email_forwards_spec.rb +25 -25
- data/spec/dnsimple/client/domains_pushes_spec.rb +22 -22
- data/spec/dnsimple/client/domains_spec.rb +27 -27
- data/spec/dnsimple/client/identity_spec.rb +8 -8
- data/spec/dnsimple/client/oauth_spec.rb +8 -8
- data/spec/dnsimple/client/registrar_auto_renewal_spec.rb +12 -12
- data/spec/dnsimple/client/registrar_delegation_spec.rb +18 -18
- data/spec/dnsimple/client/registrar_spec.rb +37 -37
- data/spec/dnsimple/client/registrar_whois_privacy_spec.rb +16 -16
- data/spec/dnsimple/client/services_domains_spec.rb +13 -13
- data/spec/dnsimple/client/services_spec.rb +10 -10
- data/spec/dnsimple/client/templates_domains_spec.rb +4 -4
- data/spec/dnsimple/client/templates_records_spec.rb +25 -25
- data/spec/dnsimple/client/templates_spec.rb +26 -26
- data/spec/dnsimple/client/tlds_spec.rb +16 -16
- data/spec/dnsimple/client/vanity_name_servers_spec.rb +8 -8
- data/spec/dnsimple/client/webhooks_spec.rb +21 -21
- data/spec/dnsimple/client/zones_records_spec.rb +40 -40
- data/spec/dnsimple/client/zones_spec.rb +18 -18
- data/spec/dnsimple/client_spec.rb +25 -25
- metadata +3 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebcde22a916ca2575f93426b277d8fb2000da824
|
4
|
+
data.tar.gz: d26271208dcf497b132004385a800ff229432287
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68991131ad17ff8d9a7bf14ddf3fed6a2f298668074e39945537478eff76bad1f921db9e90c8b34aa311fda12e19f8267fb208bb7605001f965bb9f65bd73c1e
|
7
|
+
data.tar.gz: 2993c7d50cd5a8eaf44a0d15276dc7b0ce6e1374f20be04f62ccac9bd650a7b43d7acfaf8ee7102ac66dc2b91be8baee72a2a297211b2b13039aae3e5ab6b267
|
data/.rubocop_dnsimple.yml
CHANGED
@@ -1,8 +1,15 @@
|
|
1
|
+
# Defaults https://github.com/bbatsov/rubocop/blob/master/config/default.yml
|
2
|
+
|
1
3
|
AllCops:
|
2
4
|
Exclude:
|
3
5
|
# Exclude .gemspec files because they are generally auto-generated
|
4
6
|
- '*.gemspec'
|
5
7
|
|
8
|
+
# In most cases, Gems are sorted alphabetically.
|
9
|
+
# However, in some few cases the order is relevant due to dependencies.
|
10
|
+
Bundler/OrderedGems:
|
11
|
+
Enabled: false
|
12
|
+
|
6
13
|
# Generally, the keyword style uses a lot of space. This is particularly true when
|
7
14
|
# you use case/if statements, in combination with a long-name variable.
|
8
15
|
#
|
@@ -16,6 +23,10 @@ AllCops:
|
|
16
23
|
Lint/EndAlignment:
|
17
24
|
EnforcedStyleAlignWith: variable
|
18
25
|
|
26
|
+
# [codesmell]
|
27
|
+
Lint/HandleExceptions:
|
28
|
+
Enabled: false
|
29
|
+
|
19
30
|
# [codesmell]
|
20
31
|
Metrics/AbcSize:
|
21
32
|
Enabled: false
|
@@ -93,54 +104,16 @@ Style/BlockDelimiters:
|
|
93
104
|
IgnoredMethods:
|
94
105
|
- expect
|
95
106
|
|
96
|
-
# I'
|
107
|
+
# I'm not sure we should enforce a style,
|
108
|
+
# but if we do, context_dependent offers a good compromise on readability.
|
97
109
|
Style/BracesAroundHashParameters:
|
110
|
+
Enabled: false
|
98
111
|
EnforcedStyle: context_dependent
|
99
112
|
|
100
|
-
# For the same reason of EndAlignment, aligning with the case may have a bad impact
|
101
|
-
# on a case after a very long variable.
|
102
|
-
#
|
103
|
-
# invoice_error_message = case error
|
104
|
-
# when 1 == 1
|
105
|
-
# do_something
|
106
|
-
# else
|
107
|
-
# do_else
|
108
|
-
# end
|
109
|
-
#
|
110
|
-
Style/CaseIndentation:
|
111
|
-
EnforcedStyle: end
|
112
|
-
|
113
|
-
# I was a big fan of leading, but trailing seems to be more commonly adopted.
|
114
|
-
# At least at the time being.
|
115
|
-
Style/DotPosition:
|
116
|
-
EnforcedStyle: trailing
|
117
|
-
|
118
113
|
# Warn on empty else.
|
119
114
|
Style/EmptyElse:
|
120
115
|
EnforcedStyle: empty
|
121
116
|
|
122
|
-
# Double empty lines are useful to separate conceptually different methods
|
123
|
-
# in the same class or module.
|
124
|
-
Style/EmptyLines:
|
125
|
-
Enabled: false
|
126
|
-
|
127
|
-
Style/EmptyLinesAroundBlockBody:
|
128
|
-
Exclude:
|
129
|
-
# RSpec is all made of blocks. Disable this config in RSpec
|
130
|
-
# to be consistent with EmptyLinesAroundClassBody and EmptyLinesAroundModuleBody
|
131
|
-
- 'spec/**/*_spec.rb'
|
132
|
-
- 'test/**/*_test.rb'
|
133
|
-
|
134
|
-
# In most cases, a space is nice. Sometimes, it's not.
|
135
|
-
# Just be consistent with the rest of the surrounding code.
|
136
|
-
Style/EmptyLinesAroundClassBody:
|
137
|
-
Enabled: false
|
138
|
-
|
139
|
-
# In most cases, a space is nice. Sometimes, it's not.
|
140
|
-
# Just be consistent with the rest of the surrounding code.
|
141
|
-
Style/EmptyLinesAroundModuleBody:
|
142
|
-
Enabled: false
|
143
|
-
|
144
117
|
# There is no specific preference for empty methods.
|
145
118
|
# One-line methods are not exceptionally nice in Ruby. Just ignore this cop for now.
|
146
119
|
Style/EmptyMethod:
|
@@ -152,10 +125,6 @@ Style/EmptyMethod:
|
|
152
125
|
Style/FormatString:
|
153
126
|
Enabled: false
|
154
127
|
|
155
|
-
# Multi-line differs from standard indentation, they are indented twice.
|
156
|
-
Style/FirstParameterIndentation:
|
157
|
-
IndentationWidth: 4
|
158
|
-
|
159
128
|
# We don't support frozen strings.
|
160
129
|
# This is an experimental feature and we don't know if it will be shipped with
|
161
130
|
# Ruby 3.0 or not.
|
@@ -174,16 +143,6 @@ Style/HashSyntax:
|
|
174
143
|
Style/IfUnlessModifier:
|
175
144
|
Enabled: false
|
176
145
|
|
177
|
-
# Array indentation should be considered like MultilineMethodCallIndentation indentation
|
178
|
-
# and use 4 spaces instead of 2.
|
179
|
-
Style/IndentArray:
|
180
|
-
IndentationWidth: 4
|
181
|
-
|
182
|
-
# Hash indentation should be considered like MultilineMethodCallIndentation indentation
|
183
|
-
# and use 4 spaces instead of 2.
|
184
|
-
Style/IndentHash:
|
185
|
-
IndentationWidth: 4
|
186
|
-
|
187
146
|
# [codesmell]
|
188
147
|
# It's not always that bad.
|
189
148
|
Style/IfInsideElse:
|
@@ -199,16 +158,6 @@ Style/MultilineBlockChain:
|
|
199
158
|
# RSpec uses multi-line blocks for certain features
|
200
159
|
- 'spec/**/*_spec.rb'
|
201
160
|
|
202
|
-
# Multi-line differs from standard indentation, they are indented twice.
|
203
|
-
Style/MultilineMethodCallIndentation:
|
204
|
-
EnforcedStyle: indented
|
205
|
-
IndentationWidth: 4
|
206
|
-
|
207
|
-
# Multi-line differs from standard indentation, they are indented twice.
|
208
|
-
Style/MultilineOperationIndentation:
|
209
|
-
EnforcedStyle: indented
|
210
|
-
IndentationWidth: 4
|
211
|
-
|
212
161
|
# unless is not always cool.
|
213
162
|
Style/NegatedIf:
|
214
163
|
Enabled: false
|
@@ -221,6 +170,18 @@ Style/NumericLiterals:
|
|
221
170
|
- 'spec/**/*_spec.rb'
|
222
171
|
- 'test/**/*_test.rb'
|
223
172
|
|
173
|
+
# For years, %w() has been the de-facto standard. A lot of libraries are using ().
|
174
|
+
# Switching to [] would be a nightmare.
|
175
|
+
Style/PercentLiteralDelimiters:
|
176
|
+
Enabled: false
|
177
|
+
|
178
|
+
# We use it from time to time, as it's not always possible (or maintainable)
|
179
|
+
# to use simple ? methods.
|
180
|
+
# Moreover, it's actually more efficient to not-use predicates:
|
181
|
+
# https://github.com/bbatsov/rubocop/issues/3633
|
182
|
+
Style/PredicateName:
|
183
|
+
Enabled: false
|
184
|
+
|
224
185
|
# Do we care?
|
225
186
|
Style/RegexpLiteral:
|
226
187
|
Enabled: false
|
@@ -230,15 +191,8 @@ Style/RegexpLiteral:
|
|
230
191
|
Style/RescueModifier:
|
231
192
|
Enabled: false
|
232
193
|
|
233
|
-
#
|
234
|
-
|
235
|
-
# %w( foo bar )
|
236
|
-
#
|
237
|
-
# looks better to me than
|
238
|
-
#
|
239
|
-
# %w( foo bar )
|
240
|
-
#
|
241
|
-
Style/SpaceInsidePercentLiteralDelimiters:
|
194
|
+
# This is quite annoying, especially in cases where we don't control it (e.g. schema.rb).
|
195
|
+
Style/SymbolArray:
|
242
196
|
Enabled: false
|
243
197
|
|
244
198
|
# We don't have a preference.
|
@@ -252,6 +206,11 @@ Style/StringLiterals:
|
|
252
206
|
Enabled: false
|
253
207
|
EnforcedStyle: double_quotes
|
254
208
|
|
209
|
+
# As before.
|
210
|
+
Style/StringLiteralsInInterpolation:
|
211
|
+
Enabled: false
|
212
|
+
EnforcedStyle: double_quotes
|
213
|
+
|
255
214
|
# It's nice to be consistent. The trailing comma also allows easy reordering,
|
256
215
|
# and doesn't cause a diff in Git when you add a line to the bottom.
|
257
216
|
Style/TrailingCommaInLiteral:
|
@@ -270,3 +229,98 @@ Style/TrivialAccessors:
|
|
270
229
|
Style/WordArray:
|
271
230
|
EnforcedStyle: percent
|
272
231
|
MinSize: 3
|
232
|
+
|
233
|
+
# Forces the order of comparison arguments.
|
234
|
+
#
|
235
|
+
# According to this cop, the following statement is bad:
|
236
|
+
#
|
237
|
+
# "https" == uri.scheme
|
238
|
+
#
|
239
|
+
# Whereas the following is considered good:
|
240
|
+
#
|
241
|
+
# uri.scheme == "https"
|
242
|
+
Style/YodaCondition:
|
243
|
+
Enabled: false
|
244
|
+
|
245
|
+
# For the same reason of EndAlignment, aligning with the case may have a bad impact
|
246
|
+
# on a case after a very long variable.
|
247
|
+
#
|
248
|
+
# invoice_error_message = case error
|
249
|
+
# when 1 == 1
|
250
|
+
# do_something
|
251
|
+
# else
|
252
|
+
# do_else
|
253
|
+
# end
|
254
|
+
#
|
255
|
+
Layout/CaseIndentation:
|
256
|
+
EnforcedStyle: end
|
257
|
+
|
258
|
+
# I was a big fan of leading, but trailing seems to be more commonly adopted.
|
259
|
+
# At least at the time being.
|
260
|
+
Layout/DotPosition:
|
261
|
+
EnforcedStyle: leading
|
262
|
+
|
263
|
+
# Double empty lines are useful to separate conceptually different methods
|
264
|
+
# in the same class or module.
|
265
|
+
Layout/EmptyLines:
|
266
|
+
Enabled: false
|
267
|
+
|
268
|
+
Layout/EmptyLinesAroundBlockBody:
|
269
|
+
Exclude:
|
270
|
+
# RSpec is all made of blocks. Disable this config in RSpec
|
271
|
+
# to be consistent with EmptyLinesAroundClassBody and EmptyLinesAroundModuleBody
|
272
|
+
- 'spec/**/*_spec.rb'
|
273
|
+
- 'test/**/*_test.rb'
|
274
|
+
|
275
|
+
# In most cases, a space is nice. Sometimes, it's not.
|
276
|
+
# Just be consistent with the rest of the surrounding code.
|
277
|
+
Layout/EmptyLinesAroundClassBody:
|
278
|
+
Enabled: false
|
279
|
+
|
280
|
+
# We're ok with it. We use it quite often for method-level rescue statements.
|
281
|
+
Layout/EmptyLinesAroundExceptionHandlingKeywords:
|
282
|
+
Enabled: false
|
283
|
+
|
284
|
+
# In most cases, a space is nice. Sometimes, it's not.
|
285
|
+
# Just be consistent with the rest of the surrounding code.
|
286
|
+
Layout/EmptyLinesAroundModuleBody:
|
287
|
+
Enabled: false
|
288
|
+
|
289
|
+
# This is quite buggy, as it doesn't recognize double lines.
|
290
|
+
Layout/EmptyLineBetweenDefs:
|
291
|
+
Enabled: false
|
292
|
+
|
293
|
+
# Multi-line differs from standard indentation, they are indented twice.
|
294
|
+
Layout/FirstParameterIndentation:
|
295
|
+
IndentationWidth: 4
|
296
|
+
|
297
|
+
# Array indentation should be considered like MultilineMethodCallIndentation indentation
|
298
|
+
# and use 4 spaces instead of 2.
|
299
|
+
Layout/IndentArray:
|
300
|
+
IndentationWidth: 4
|
301
|
+
|
302
|
+
# Hash indentation should be considered like MultilineMethodCallIndentation indentation
|
303
|
+
# and use 4 spaces instead of 2.
|
304
|
+
Layout/IndentHash:
|
305
|
+
IndentationWidth: 4
|
306
|
+
|
307
|
+
# Multi-line differs from standard indentation, they are indented twice.
|
308
|
+
Layout/MultilineMethodCallIndentation:
|
309
|
+
EnforcedStyle: indented
|
310
|
+
IndentationWidth: 4
|
311
|
+
|
312
|
+
# Multi-line differs from standard indentation, they are indented twice.
|
313
|
+
Layout/MultilineOperationIndentation:
|
314
|
+
EnforcedStyle: indented
|
315
|
+
IndentationWidth: 4
|
316
|
+
|
317
|
+
# Sorry, but using trailing spaces helps readability.
|
318
|
+
#
|
319
|
+
# %w( foo bar )
|
320
|
+
#
|
321
|
+
# looks better to me than
|
322
|
+
#
|
323
|
+
# %w( foo bar )
|
324
|
+
#
|
325
|
+
Layout/SpaceInsidePercentLiteralDelimiters:
|
326
|
+
Enabled: false
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,10 +2,19 @@
|
|
2
2
|
|
3
3
|
This project uses [Semantic Versioning 2.0.0](http://semver.org/).
|
4
4
|
|
5
|
+
|
6
|
+
#### 4.3.0
|
7
|
+
|
8
|
+
- NEW: Added `certificates.all_certificates` (dnsimple/dnsimple-ruby#155)
|
9
|
+
|
10
|
+
- CHANGED: Updated registrar URLs (dnsimple/dnsimple-ruby#153)
|
11
|
+
|
12
|
+
|
5
13
|
#### 4.2.0
|
6
14
|
|
7
15
|
- NEW: Added DNSSEC support support (dnsimple/dnsimple-ruby#152)
|
8
16
|
|
17
|
+
|
9
18
|
#### 4.1.0
|
10
19
|
|
11
20
|
- NEW: Added domain premium price support (dnsimple/dnsimple-ruby#143)
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -88,4 +88,4 @@ The value you provide will be appended to the default `User-Agent` the client us
|
|
88
88
|
|
89
89
|
## License
|
90
90
|
|
91
|
-
Copyright (c) 2010-
|
91
|
+
Copyright (c) 2010-2017 Aetrion LLC. This is Free Software distributed under the MIT license.
|
data/dnsimple.gemspec
CHANGED
@@ -5,8 +5,8 @@ require 'dnsimple/version'
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = 'dnsimple'
|
7
7
|
s.version = Dnsimple::VERSION
|
8
|
-
s.authors = ['Anthony Eden', 'Simone Carletti', 'Javier Acero', '
|
9
|
-
s.email = ['anthony.eden@dnsimple.com', 'simone.carletti@dnsimple.com', 'javier.acero@dnsimple.com', '
|
8
|
+
s.authors = ['Anthony Eden', 'Simone Carletti', 'Javier Acero', 'Luca Guidi']
|
9
|
+
s.email = ['anthony.eden@dnsimple.com', 'simone.carletti@dnsimple.com', 'javier.acero@dnsimple.com', 'luca.guidi@dnsimple.com']
|
10
10
|
s.homepage = 'https://github.com/dnsimple/dnsimple-ruby'
|
11
11
|
s.summary = 'The DNSimple API client for Ruby'
|
12
12
|
s.description = 'The DNSimple API client for Ruby.'
|
@@ -30,6 +30,30 @@ module Dnsimple
|
|
30
30
|
Dnsimple::PaginatedResponse.new(response, response["data"].map { |r| Struct::Certificate.new(r) })
|
31
31
|
end
|
32
32
|
|
33
|
+
# Lists ALL the certificates for the domain.
|
34
|
+
#
|
35
|
+
# This method is similar to {#certificates}, but instead of returning the results of a specific page
|
36
|
+
# it iterates all the pages and returns the entire collection.
|
37
|
+
#
|
38
|
+
# Please use this method carefully, as fetching the entire collection will increase the number of requests
|
39
|
+
# you send to the API server and you may eventually risk to hit the throttle limit.
|
40
|
+
#
|
41
|
+
# @see https://developer.dnsimple.com/v2/domains/certificates/#list
|
42
|
+
# @see #certificates
|
43
|
+
#
|
44
|
+
# @param [Integer] account_id the account ID
|
45
|
+
# @param [#to_s] domain_name The domain ID or domain name
|
46
|
+
# @param [Hash] options the filtering and sorting option
|
47
|
+
# @option options [Integer] :page current page (pagination)
|
48
|
+
# @option options [Integer] :per_page number of entries to return (pagination)
|
49
|
+
# @option options [String] :sort sorting policy
|
50
|
+
# @return [Dnsimple::CollectionResponse<Dnsimple::Struct::Certificate>]
|
51
|
+
#
|
52
|
+
# @raise [Dnsimple::RequestError]
|
53
|
+
def all_certificates(account_id, domain_name, options = {})
|
54
|
+
paginate(:certificates, account_id, domain_name, options)
|
55
|
+
end
|
56
|
+
|
33
57
|
# Gets a certificate associated to the domain.
|
34
58
|
#
|
35
59
|
# @see https://developer.dnsimple.com/v2/domains/certificates/#get
|
@@ -65,7 +65,7 @@ module Dnsimple
|
|
65
65
|
# @raise [RequestError] When the request fails.
|
66
66
|
def register_domain(account_id, domain_name, attributes, options = {})
|
67
67
|
Extra.validate_mandatory_attributes(attributes, [:registrant_id])
|
68
|
-
endpoint = Client.versioned("/%s/registrar/domains/%s/
|
68
|
+
endpoint = Client.versioned("/%s/registrar/domains/%s/registrations" % [account_id, domain_name])
|
69
69
|
response = client.post(endpoint, attributes, options)
|
70
70
|
|
71
71
|
Dnsimple::Response.new(response, Struct::DomainRegistration.new(response["data"]))
|
@@ -86,7 +86,7 @@ module Dnsimple
|
|
86
86
|
#
|
87
87
|
# @raise [RequestError] When the request fails.
|
88
88
|
def renew_domain(account_id, domain_name, attributes = nil, options = {})
|
89
|
-
endpoint = Client.versioned("/%s/registrar/domains/%s/
|
89
|
+
endpoint = Client.versioned("/%s/registrar/domains/%s/renewals" % [account_id, domain_name])
|
90
90
|
response = client.post(endpoint, attributes, options)
|
91
91
|
|
92
92
|
Dnsimple::Response.new(response, Struct::DomainRenewal.new(response["data"]))
|
@@ -108,7 +108,7 @@ module Dnsimple
|
|
108
108
|
# @raise [RequestError] When the request fails.
|
109
109
|
def transfer_domain(account_id, domain_name, attributes, options = {})
|
110
110
|
Extra.validate_mandatory_attributes(attributes, [:registrant_id])
|
111
|
-
endpoint = Client.versioned("/%s/registrar/domains/%s/
|
111
|
+
endpoint = Client.versioned("/%s/registrar/domains/%s/transfers" % [account_id, domain_name])
|
112
112
|
response = client.post(endpoint, attributes, options)
|
113
113
|
|
114
114
|
Dnsimple::Response.new(response, Struct::DomainTransfer.new(response["data"]))
|
@@ -128,7 +128,7 @@ module Dnsimple
|
|
128
128
|
#
|
129
129
|
# @raise [RequestError] When the request fails.
|
130
130
|
def transfer_domain_out(account_id, domain_name, options = {})
|
131
|
-
endpoint = Client.versioned("/%s/registrar/domains/%s/
|
131
|
+
endpoint = Client.versioned("/%s/registrar/domains/%s/authorize_transfer_out" % [account_id, domain_name])
|
132
132
|
response = client.post(endpoint, nil, options)
|
133
133
|
|
134
134
|
Dnsimple::Response.new(response, nil)
|
data/lib/dnsimple/version.rb
CHANGED
@@ -7,15 +7,15 @@ describe Dnsimple::Client, ".accounts" do
|
|
7
7
|
|
8
8
|
describe "#accounts" do
|
9
9
|
before do
|
10
|
-
stub_request(:get, %r{/v2/accounts$})
|
11
|
-
to_return(read_http_fixture("listAccounts/success-user.http"))
|
10
|
+
stub_request(:get, %r{/v2/accounts$})
|
11
|
+
.to_return(read_http_fixture("listAccounts/success-user.http"))
|
12
12
|
end
|
13
13
|
|
14
14
|
it "builds the correct request" do
|
15
15
|
subject.accounts
|
16
16
|
|
17
|
-
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/accounts")
|
18
|
-
with(headers: { 'Accept' => 'application/json' })
|
17
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/accounts")
|
18
|
+
.with(headers: { 'Accept' => 'application/json' })
|
19
19
|
end
|
20
20
|
|
21
21
|
it "returns the accounts" do
|
@@ -9,15 +9,15 @@ describe Dnsimple::Client, ".certificates" do
|
|
9
9
|
let(:domain_id) { "example.com" }
|
10
10
|
|
11
11
|
before do
|
12
|
-
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/certificates})
|
13
|
-
to_return(read_http_fixture("listCertificates/success.http"))
|
12
|
+
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/certificates})
|
13
|
+
.to_return(read_http_fixture("listCertificates/success.http"))
|
14
14
|
end
|
15
15
|
|
16
16
|
it "builds the correct request" do
|
17
17
|
subject.certificates(account_id, domain_id)
|
18
18
|
|
19
|
-
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/certificates")
|
20
|
-
with(headers: { 'Accept' => 'application/json' })
|
19
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/certificates")
|
20
|
+
.with(headers: { 'Accept' => 'application/json' })
|
21
21
|
end
|
22
22
|
|
23
23
|
it "supports pagination" do
|
@@ -56,21 +56,42 @@ describe Dnsimple::Client, ".certificates" do
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
+
describe "#all_certificates" do
|
60
|
+
before do
|
61
|
+
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/certificates})
|
62
|
+
.to_return(read_http_fixture("listCertificates/success.http"))
|
63
|
+
end
|
64
|
+
|
65
|
+
let(:account_id) { 1010 }
|
66
|
+
let(:domain_id) { "example.com" }
|
67
|
+
|
68
|
+
it "delegates to client.paginate" do
|
69
|
+
expect(subject).to receive(:paginate).with(:certificates, account_id, domain_id, foo: "bar")
|
70
|
+
subject.all_certificates(account_id, domain_id, foo: "bar")
|
71
|
+
end
|
72
|
+
|
73
|
+
it "supports sorting" do
|
74
|
+
subject.all_certificates(account_id, domain_id, sort: "id:asc,expires_on:desc")
|
75
|
+
|
76
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/certificates?page=1&per_page=100&sort=id:asc,expires_on:desc")
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
59
80
|
describe "#certificate" do
|
60
81
|
let(:account_id) { 1010 }
|
61
82
|
let(:domain_id) { "weppos.net" }
|
62
83
|
let(:certificate_id) { 1 }
|
63
84
|
|
64
85
|
before do
|
65
|
-
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}})
|
66
|
-
to_return(read_http_fixture("getCertificate/success.http"))
|
86
|
+
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}})
|
87
|
+
.to_return(read_http_fixture("getCertificate/success.http"))
|
67
88
|
end
|
68
89
|
|
69
90
|
it "builds the correct request" do
|
70
91
|
subject.certificate(account_id, domain_id, certificate_id)
|
71
92
|
|
72
|
-
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}")
|
73
|
-
with(headers: { 'Accept' => 'application/json' })
|
93
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}")
|
94
|
+
.with(headers: { 'Accept' => 'application/json' })
|
74
95
|
end
|
75
96
|
|
76
97
|
it "supports extra request options" do
|
@@ -99,8 +120,8 @@ describe Dnsimple::Client, ".certificates" do
|
|
99
120
|
|
100
121
|
context "when the certificate does not exist" do
|
101
122
|
it "raises NotFoundError" do
|
102
|
-
stub_request(:get, %r{/v2})
|
103
|
-
to_return(read_http_fixture("notfound-certificate.http"))
|
123
|
+
stub_request(:get, %r{/v2})
|
124
|
+
.to_return(read_http_fixture("notfound-certificate.http"))
|
104
125
|
|
105
126
|
expect {
|
106
127
|
subject.certificate(account_id, domain_id, certificate_id)
|
@@ -115,15 +136,15 @@ describe Dnsimple::Client, ".certificates" do
|
|
115
136
|
let(:certificate_id) { 1 }
|
116
137
|
|
117
138
|
before do
|
118
|
-
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}/download})
|
119
|
-
to_return(read_http_fixture("downloadCertificate/success.http"))
|
139
|
+
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}/download})
|
140
|
+
.to_return(read_http_fixture("downloadCertificate/success.http"))
|
120
141
|
end
|
121
142
|
|
122
143
|
it "builds the correct request" do
|
123
144
|
subject.download_certificate(account_id, domain_id, certificate_id)
|
124
145
|
|
125
|
-
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}/download")
|
126
|
-
with(headers: { 'Accept' => 'application/json' })
|
146
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}/download")
|
147
|
+
.with(headers: { 'Accept' => 'application/json' })
|
127
148
|
end
|
128
149
|
|
129
150
|
it "supports extra request options" do
|
@@ -146,8 +167,8 @@ describe Dnsimple::Client, ".certificates" do
|
|
146
167
|
|
147
168
|
context "when the certificate does not exist" do
|
148
169
|
it "raises NotFoundError" do
|
149
|
-
stub_request(:get, %r{/v2})
|
150
|
-
to_return(read_http_fixture("notfound-certificate.http"))
|
170
|
+
stub_request(:get, %r{/v2})
|
171
|
+
.to_return(read_http_fixture("notfound-certificate.http"))
|
151
172
|
|
152
173
|
expect {
|
153
174
|
subject.download_certificate(account_id, domain_id, certificate_id)
|
@@ -162,15 +183,15 @@ describe Dnsimple::Client, ".certificates" do
|
|
162
183
|
let(:certificate_id) { 1 }
|
163
184
|
|
164
185
|
before do
|
165
|
-
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}/private_key})
|
166
|
-
to_return(read_http_fixture("getCertificatePrivateKey/success.http"))
|
186
|
+
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}/private_key})
|
187
|
+
.to_return(read_http_fixture("getCertificatePrivateKey/success.http"))
|
167
188
|
end
|
168
189
|
|
169
190
|
it "builds the correct request" do
|
170
191
|
subject.certificate_private_key(account_id, domain_id, certificate_id)
|
171
192
|
|
172
|
-
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}/private_key")
|
173
|
-
with(headers: { 'Accept' => 'application/json' })
|
193
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/certificates/#{certificate_id}/private_key")
|
194
|
+
.with(headers: { 'Accept' => 'application/json' })
|
174
195
|
end
|
175
196
|
|
176
197
|
it "supports extra request options" do
|
@@ -193,8 +214,8 @@ describe Dnsimple::Client, ".certificates" do
|
|
193
214
|
|
194
215
|
context "when the certificate does not exist" do
|
195
216
|
it "raises NotFoundError" do
|
196
|
-
stub_request(:get, %r{/v2})
|
197
|
-
to_return(read_http_fixture("notfound-certificate.http"))
|
217
|
+
stub_request(:get, %r{/v2})
|
218
|
+
.to_return(read_http_fixture("notfound-certificate.http"))
|
198
219
|
|
199
220
|
expect {
|
200
221
|
subject.certificate_private_key(account_id, domain_id, certificate_id)
|