dnsimple 4.2.0 → 4.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|