dnsimple 8.8.0 → 8.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/dnsimple/client/registrar.rb +43 -0
- data/lib/dnsimple/struct/domain_restore.rb +24 -0
- data/lib/dnsimple/struct.rb +1 -0
- data/lib/dnsimple/version.rb +1 -1
- data/spec/dnsimple/client/registrar_spec.rb +53 -0
- data/spec/fixtures.http/getDomainRestore/success.http +20 -0
- data/spec/fixtures.http/restoreDomain/success.http +20 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6757a107a26286469b7b0e991849e0557cdc1c2ff21e74f92377fd5c62047d08
|
4
|
+
data.tar.gz: 26633769cf4c7453bad5fcaa8ad6cf0d4d98d368e6a705d4834fe57cace492ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a483b5e60d097291d45f4062f270392f34505b965e906792d3458dcad334dd5bf69f92e6b5f2d345612dabbead4129c90401ba5c619bc3a9f06f550d7b661291
|
7
|
+
data.tar.gz: 00e503a63429b4e9160fe3a6c92fd177085636de937366299bf03ba036a1b8ed426e371132dd14cee43b53f6c70826e6f6e851c45410450ec16402be483a84c5
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,11 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
|
|
4
4
|
|
5
5
|
## main
|
6
6
|
|
7
|
+
## 8.9.0
|
8
|
+
|
9
|
+
- NEW: Added `Dnsimple::Client::Registrar#restore_domain` to restore a domain. (dnsimple/dnsimple-ruby#379)
|
10
|
+
- NEW: Added `Dnsimple::Client::Registrar#get_domain_restore` to retrieve the details of an existing dommain restore. (dnsimple/dnsimple-ruby#379)
|
11
|
+
|
7
12
|
## 8.8.0
|
8
13
|
|
9
14
|
- NEW: Added `Dnsimple::Client::DnsAnalytics#query` to query and pull data from the DNS Analytics API endpoint(dnsimple/dnsimple-ruby#375)
|
@@ -218,6 +218,49 @@ module Dnsimple
|
|
218
218
|
Dnsimple::Response.new(response, nil)
|
219
219
|
end
|
220
220
|
|
221
|
+
# Restores a domain.
|
222
|
+
#
|
223
|
+
# @see https://developer.dnsimple.com/v2/registrar/#restore
|
224
|
+
#
|
225
|
+
# @example Restore example.com:
|
226
|
+
# client.registrar.restore_domain(1010, "example.com", {})
|
227
|
+
#
|
228
|
+
# @param [Integer] account_id the account ID
|
229
|
+
# @param [#to_s] domain_name the domain name to restore
|
230
|
+
# @param [Hash] attributes
|
231
|
+
# @param [Hash] options
|
232
|
+
# @return [Struct::DomainRestore]
|
233
|
+
#
|
234
|
+
# @raise [RequestError] When the request fails.
|
235
|
+
def restore_domain(account_id, domain_name, attributes = nil, options = {})
|
236
|
+
endpoint = Client.versioned("/%s/registrar/domains/%s/restores" % [account_id, domain_name])
|
237
|
+
response = client.post(endpoint, attributes, options)
|
238
|
+
|
239
|
+
Dnsimple::Response.new(response, Struct::DomainRestore.new(response["data"]))
|
240
|
+
end
|
241
|
+
|
242
|
+
# Retrieve the details of an existing domain restore.
|
243
|
+
#
|
244
|
+
# @see https://developer.dnsimple.com/v2/registrar/#getDomainRestore
|
245
|
+
#
|
246
|
+
# @example Retrieve the restore 42 for example.com:
|
247
|
+
# client.registrar.get_domain_restore(1010, "example.com", 42)
|
248
|
+
#
|
249
|
+
# @param [Integer] account_id the account ID
|
250
|
+
# @param [#to_s] domain_name the domain name
|
251
|
+
# @param [Integer] domain_restore_id the domain restore ID
|
252
|
+
# @param [Hash] options
|
253
|
+
# @return [Struct::DomainRestore]
|
254
|
+
#
|
255
|
+
# @raise [NotFoundError] When record is not found.
|
256
|
+
# @raise [RequestError] When the request fails.
|
257
|
+
def get_domain_restore(account_id, domain_name, domain_restore_id, options = {})
|
258
|
+
endpoint = Client.versioned("/%s/registrar/domains/%s/restores/%s" % [account_id, domain_name, domain_restore_id])
|
259
|
+
response = client.get(endpoint, options)
|
260
|
+
|
261
|
+
Dnsimple::Response.new(response, Struct::DomainRestore.new(response["data"]))
|
262
|
+
end
|
263
|
+
|
221
264
|
end
|
222
265
|
end
|
223
266
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dnsimple
|
4
|
+
module Struct
|
5
|
+
class DomainRestore < Base
|
6
|
+
|
7
|
+
# @return [Integer] The domain restore ID in DNSimple.
|
8
|
+
attr_accessor :id
|
9
|
+
|
10
|
+
# @return [Integer] The associated domain ID.
|
11
|
+
attr_accessor :domain_id
|
12
|
+
|
13
|
+
# @return [String] The state of the restore.
|
14
|
+
attr_accessor :state
|
15
|
+
|
16
|
+
# @return [String] When the domain restore was created in DNSimple.
|
17
|
+
attr_accessor :created_at
|
18
|
+
|
19
|
+
# @return [String] When the domain restore was last updated in DNSimple.
|
20
|
+
attr_accessor :updated_at
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/dnsimple/struct.rb
CHANGED
@@ -31,6 +31,7 @@ require_relative 'struct/domain_premium_price'
|
|
31
31
|
require_relative 'struct/domain_price'
|
32
32
|
require_relative 'struct/domain_push'
|
33
33
|
require_relative 'struct/domain_registration'
|
34
|
+
require_relative 'struct/domain_restore'
|
34
35
|
require_relative 'struct/domain_transfer'
|
35
36
|
require_relative 'struct/domain_renewal'
|
36
37
|
require_relative 'struct/dns_analytics'
|
data/lib/dnsimple/version.rb
CHANGED
@@ -571,4 +571,57 @@ describe Dnsimple::Client, ".registrar" do
|
|
571
571
|
expect(result).to be_nil
|
572
572
|
end
|
573
573
|
end
|
574
|
+
|
575
|
+
describe "#restore_domain" do
|
576
|
+
let(:account_id) { 1010 }
|
577
|
+
|
578
|
+
before do
|
579
|
+
stub_request(:post, %r{/v2/#{account_id}/registrar/domains/.+/restores$})
|
580
|
+
.to_return(read_http_fixture("restoreDomain/success.http"))
|
581
|
+
end
|
582
|
+
|
583
|
+
|
584
|
+
it "builds the correct request" do
|
585
|
+
subject.restore_domain(account_id, domain_name = "example.com", {})
|
586
|
+
|
587
|
+
expect(WebMock).to have_requested(:post, "https://api.dnsimple.test/v2/#{account_id}/registrar/domains/#{domain_name}/restores")
|
588
|
+
.with(headers: { "Accept" => "application/json" })
|
589
|
+
end
|
590
|
+
|
591
|
+
it "returns the domain" do
|
592
|
+
response = subject.restore_domain(account_id, "example.com", {})
|
593
|
+
expect(response).to be_a(Dnsimple::Response)
|
594
|
+
|
595
|
+
result = response.data
|
596
|
+
expect(result).to be_a(Dnsimple::Struct::DomainRestore)
|
597
|
+
expect(result.id).to be_a(Integer)
|
598
|
+
expect(result.domain_id).to be_a(Integer)
|
599
|
+
end
|
600
|
+
end
|
601
|
+
|
602
|
+
describe "#get_domain_restore" do
|
603
|
+
let(:account_id) { 1010 }
|
604
|
+
|
605
|
+
before do
|
606
|
+
stub_request(:get, %r{/v2/#{account_id}/registrar/domains/.+/restores/.+$})
|
607
|
+
.to_return(read_http_fixture("getDomainRestore/success.http"))
|
608
|
+
end
|
609
|
+
|
610
|
+
it "builds the correct request" do
|
611
|
+
subject.get_domain_restore(account_id, domain_name = "example.com", restore_id = 361)
|
612
|
+
|
613
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/registrar/domains/#{domain_name}/restores/#{restore_id}")
|
614
|
+
.with(headers: { "Accept" => "application/json" })
|
615
|
+
end
|
616
|
+
|
617
|
+
it "returns the domain restore" do
|
618
|
+
response = subject.get_domain_restore(account_id, "example.com", 361)
|
619
|
+
expect(response).to be_a(Dnsimple::Response)
|
620
|
+
|
621
|
+
result = response.data
|
622
|
+
expect(result).to be_a(Dnsimple::Struct::DomainRestore)
|
623
|
+
expect(result.id).to be_a(Integer)
|
624
|
+
expect(result.domain_id).to be_a(Integer)
|
625
|
+
end
|
626
|
+
end
|
574
627
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
HTTP/1.1 201 Created
|
2
|
+
Server: nginx
|
3
|
+
Date: Fri, 09 Dec 2016 19:46:57 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Connection: keep-alive
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2394
|
8
|
+
X-RateLimit-Reset: 1481315245
|
9
|
+
ETag: W/"179d85ea8a26a3d5dc76e42de2d7918e"
|
10
|
+
Cache-Control: max-age=0, private, must-revalidate
|
11
|
+
X-Request-Id: ba6f2707-5df0-4ffa-b91b-51d4460bab8e
|
12
|
+
X-Runtime: 13.571302
|
13
|
+
X-Content-Type-Options: nosniff
|
14
|
+
X-Download-Options: noopen
|
15
|
+
X-Frame-Options: DENY
|
16
|
+
X-Permitted-Cross-Domain-Policies: none
|
17
|
+
X-XSS-Protection: 1; mode=block
|
18
|
+
Strict-Transport-Security: max-age=31536000
|
19
|
+
|
20
|
+
{"data":{"id":1,"domain_id":999,"state":"restored","created_at":"2016-12-09T19:46:45Z","updated_at":"2016-12-12T19:46:45Z"}}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
HTTP/1.1 201 Created
|
2
|
+
Server: nginx
|
3
|
+
Date: Fri, 09 Dec 2016 19:46:57 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Connection: keep-alive
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2394
|
8
|
+
X-RateLimit-Reset: 1481315245
|
9
|
+
ETag: W/"179d85ea8a26a3d5dc76e42de2d7918e"
|
10
|
+
Cache-Control: max-age=0, private, must-revalidate
|
11
|
+
X-Request-Id: ba6f2707-5df0-4ffa-b91b-51d4460bab8e
|
12
|
+
X-Runtime: 13.571302
|
13
|
+
X-Content-Type-Options: nosniff
|
14
|
+
X-Download-Options: noopen
|
15
|
+
X-Frame-Options: DENY
|
16
|
+
X-Permitted-Cross-Domain-Policies: none
|
17
|
+
X-XSS-Protection: 1; mode=block
|
18
|
+
Strict-Transport-Security: max-age=31536000
|
19
|
+
|
20
|
+
{"data":{"id":1,"domain_id":999,"state":"new","created_at":"2016-12-09T19:46:45Z","updated_at":"2016-12-09T19:46:45Z"}}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dnsimple
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DNSimple
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-02-
|
11
|
+
date: 2024-02-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- lib/dnsimple/struct/domain_push.rb
|
165
165
|
- lib/dnsimple/struct/domain_registration.rb
|
166
166
|
- lib/dnsimple/struct/domain_renewal.rb
|
167
|
+
- lib/dnsimple/struct/domain_restore.rb
|
167
168
|
- lib/dnsimple/struct/domain_transfer.rb
|
168
169
|
- lib/dnsimple/struct/email_forward.rb
|
169
170
|
- lib/dnsimple/struct/extended_attribute.rb
|
@@ -300,6 +301,7 @@ files:
|
|
300
301
|
- spec/fixtures.http/getDomainPrices/success.http
|
301
302
|
- spec/fixtures.http/getDomainRegistration/success.http
|
302
303
|
- spec/fixtures.http/getDomainRenewal/success.http
|
304
|
+
- spec/fixtures.http/getDomainRestore/success.http
|
303
305
|
- spec/fixtures.http/getDomainTransfer/success.http
|
304
306
|
- spec/fixtures.http/getDomainTransferLock/success.http
|
305
307
|
- spec/fixtures.http/getEmailForward/success.http
|
@@ -371,6 +373,7 @@ files:
|
|
371
373
|
- spec/fixtures.http/renewWhoisPrivacy/whois-privacy-duplicated-order.http
|
372
374
|
- spec/fixtures.http/renewWhoisPrivacy/whois-privacy-not-found.http
|
373
375
|
- spec/fixtures.http/response.http
|
376
|
+
- spec/fixtures.http/restoreDomain/success.http
|
374
377
|
- spec/fixtures.http/success-with-malformed-json.http
|
375
378
|
- spec/fixtures.http/transferDomain/error-indnsimple.http
|
376
379
|
- spec/fixtures.http/transferDomain/error-missing-authcode.http
|