dnsimple 8.5.0 → 8.6.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/CHANGELOG.md +8 -0
- data/Gemfile +3 -3
- data/lib/dnsimple/client/clients.rb +2 -0
- data/lib/dnsimple/client/registrar_transfer_lock.rb +61 -0
- data/lib/dnsimple/struct/transfer_lock.rb +12 -0
- data/lib/dnsimple/struct.rb +1 -0
- data/lib/dnsimple/version.rb +1 -1
- data/spec/dnsimple/client/registrar_transfer_lock_spec.rb +118 -0
- data/spec/fixtures.http/disableDomainTransferLock/success.http +20 -0
- data/spec/fixtures.http/enableDomainTransferLock/success.http +20 -0
- data/spec/fixtures.http/getDomainTransferLock/success.http +20 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 644e524e7010bc680c34ba6abf09315fbe41e2a5ec63ee6c82e443df4f21326a
|
4
|
+
data.tar.gz: aa84484bdf2a0b8b48ca45ad448dcea01c8c879acdf4b1c018f2cb8fb73ad7cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa53931624fc7c23d8f91332c9d86379560fc3609fe0f351d6346b6e38fb5b9337bb04e0aa6120c639431b9931cbc100405bc7bca544e04ee805b1ef07e2d4cb
|
7
|
+
data.tar.gz: 0032b9d9c4b3df0581e9037a5196bc8376c9f01dbb87ced552eb0372f6d30263a1121bdd86ba16e1a5a992974b64639cbdb81b9ba50e8442603bd0c6ab39f0b2
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,14 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
|
|
4
4
|
|
5
5
|
## main
|
6
6
|
|
7
|
+
## 8.6.0
|
8
|
+
|
9
|
+
FEATURES:
|
10
|
+
|
11
|
+
- NEW: Added `Dnsimple::Client::Registrar#get_domain_transfer_lock` to retrieves the transfer lock status of a registered domain. (dnsimple/dnsimple-ruby#356)
|
12
|
+
- NEW: Added `Dnsimple::Client::Registrar#enable_domain_transfer_lock` to enable the transfer lock for a registered domain. (dnsimple/dnsimple-ruby#356)
|
13
|
+
- NEW: Added `Dnsimple::Client::Registrar#disable_domain_transfer_lock` to disable the transfer lock for a registered domain. (dnsimple/dnsimple-ruby#356)
|
14
|
+
|
7
15
|
## 8.5.0
|
8
16
|
|
9
17
|
FEATURES:
|
data/Gemfile
CHANGED
@@ -5,7 +5,7 @@ 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.56.2', require: false
|
9
|
+
gem 'rubocop-performance', '1.19.0', require: false
|
10
10
|
gem 'rubocop-rake', '0.6.0', require: false
|
11
|
-
gem 'rubocop-rspec', '2.23.
|
11
|
+
gem 'rubocop-rspec', '2.23.2', require: false
|
@@ -164,6 +164,7 @@ module Dnsimple
|
|
164
164
|
require_relative 'registrar_auto_renewal'
|
165
165
|
require_relative 'registrar_whois_privacy'
|
166
166
|
require_relative 'registrar_registrant_changes'
|
167
|
+
require_relative 'registrar_transfer_lock'
|
167
168
|
require_relative 'registrar_delegation'
|
168
169
|
|
169
170
|
class RegistrarService < ClientService
|
@@ -171,6 +172,7 @@ module Dnsimple
|
|
171
172
|
include Client::RegistrarAutoRenewal
|
172
173
|
include Client::RegistrarDelegation
|
173
174
|
include Client::RegistrarRegistrantChanges
|
175
|
+
include Client::RegistrarTransferLock
|
174
176
|
include Client::RegistrarWhoisPrivacy
|
175
177
|
end
|
176
178
|
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dnsimple
|
4
|
+
class Client
|
5
|
+
module RegistrarTransferLock
|
6
|
+
|
7
|
+
# Gets the transfer lock for the domain.
|
8
|
+
#
|
9
|
+
# @example Get the transfer lock for "example.com":
|
10
|
+
# client.registrar.get_domain_transfer_lock(1010, "example.com")
|
11
|
+
#
|
12
|
+
# @param [#to_s] account_id the account ID
|
13
|
+
# @param [#to_s] domain_name the domain name
|
14
|
+
# @param [Hash] options
|
15
|
+
# @return [Struct::TransferLock]
|
16
|
+
#
|
17
|
+
# @raise [Dnsimple::NotFoundError]
|
18
|
+
# @raise [RequestError] When the request fails.
|
19
|
+
def get_domain_transfer_lock(account_id, domain_name, options = {})
|
20
|
+
response = client.get(Client.versioned("/%s/registrar/domains/%s/transfer_lock" % [account_id, domain_name]), options)
|
21
|
+
|
22
|
+
Dnsimple::Response.new(response, Struct::TransferLock.new(response["data"]))
|
23
|
+
end
|
24
|
+
|
25
|
+
# Enable transfer lock for the domain in the account.
|
26
|
+
#
|
27
|
+
# @see https://developer.dnsimple.com/v2/registrar/#enableDomainTransferLock
|
28
|
+
#
|
29
|
+
# @param [Integer] account_id the account ID
|
30
|
+
# @param [#to_s] domain_name the domain name
|
31
|
+
# @param [Hash] options
|
32
|
+
# @return [Struct::TransferLock]
|
33
|
+
#
|
34
|
+
# @raise [Dnsimple::NotFoundError]
|
35
|
+
# @raise [Dnsimple::RequestError]
|
36
|
+
def enable_domain_transfer_lock(account_id, domain_name, options = {})
|
37
|
+
response = client.post(Client.versioned("/%s/registrar/domains/%s/transfer_lock" % [account_id, domain_name]), nil, options)
|
38
|
+
|
39
|
+
Dnsimple::Response.new(response, Struct::TransferLock.new(response["data"]))
|
40
|
+
end
|
41
|
+
|
42
|
+
# Disable trasnfer lock for the domain in the account.
|
43
|
+
#
|
44
|
+
# @see https://developer.dnsimple.com/v2/registrar/#disableDomainTransferLock
|
45
|
+
#
|
46
|
+
# @param [Integer] account_id the account ID
|
47
|
+
# @param [#to_s] domain_name the domain name
|
48
|
+
# @param [Hash] options
|
49
|
+
# @return [Struct::TransferLock]
|
50
|
+
#
|
51
|
+
# @raise [Dnsimple::NotFoundError]
|
52
|
+
# @raise [Dnsimple::RequestError]
|
53
|
+
def disable_domain_transfer_lock(account_id, domain_name, options = {})
|
54
|
+
response = client.delete(Client.versioned("/%s/registrar/domains/%s/transfer_lock" % [account_id, domain_name]), nil, options)
|
55
|
+
|
56
|
+
Dnsimple::Response.new(response, Struct::TransferLock.new(response["data"]))
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/lib/dnsimple/struct.rb
CHANGED
@@ -37,6 +37,7 @@ require_relative 'struct/extended_attribute'
|
|
37
37
|
require_relative 'struct/oauth_token'
|
38
38
|
require_relative 'struct/registrant_change_check'
|
39
39
|
require_relative 'struct/registrant_change'
|
40
|
+
require_relative 'struct/transfer_lock'
|
40
41
|
require_relative 'struct/zone_record'
|
41
42
|
require_relative 'struct/service'
|
42
43
|
require_relative 'struct/template'
|
data/lib/dnsimple/version.rb
CHANGED
@@ -0,0 +1,118 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Dnsimple::Client, ".registrar" do
|
6
|
+
subject { described_class.new(base_url: "https://api.dnsimple.test", access_token: "a1b2c3").registrar }
|
7
|
+
|
8
|
+
describe "#get_domain_transfer_lock" do
|
9
|
+
let(:account_id) { 1010 }
|
10
|
+
let(:domain_id) { "example.com" }
|
11
|
+
|
12
|
+
before do
|
13
|
+
stub_request(:get, %r{/v2/#{account_id}/registrar/domains/#{domain_id}/transfer_lock})
|
14
|
+
.to_return(read_http_fixture("getDomainTransferLock/success.http"))
|
15
|
+
end
|
16
|
+
|
17
|
+
it "builds the correct request" do
|
18
|
+
subject.get_domain_transfer_lock(account_id, domain_id)
|
19
|
+
|
20
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/registrar/domains/#{domain_id}/transfer_lock")
|
21
|
+
.with(headers: { 'Accept' => 'application/json' })
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns the transfer lock state" do
|
25
|
+
response = subject.get_domain_transfer_lock(account_id, domain_id)
|
26
|
+
expect(response).to be_a(Dnsimple::Response)
|
27
|
+
|
28
|
+
result = response.data
|
29
|
+
expect(result).to be_a(Dnsimple::Struct::TransferLock)
|
30
|
+
expect(result.enabled).to be(true)
|
31
|
+
end
|
32
|
+
|
33
|
+
context "when the domain does not exist" do
|
34
|
+
it "raises NotFoundError" do
|
35
|
+
stub_request(:get, %r{/v2})
|
36
|
+
.to_return(read_http_fixture("notfound-domain.http"))
|
37
|
+
|
38
|
+
expect {
|
39
|
+
subject.get_domain_transfer_lock(account_id, domain_id)
|
40
|
+
}.to raise_error(Dnsimple::NotFoundError)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "#enable_domain_transfer_lock" do
|
46
|
+
let(:account_id) { 1010 }
|
47
|
+
let(:domain_id) { "example.com" }
|
48
|
+
|
49
|
+
before do
|
50
|
+
stub_request(:post, %r{/v2/#{account_id}/registrar/domains/#{domain_id}/transfer_lock})
|
51
|
+
.to_return(read_http_fixture("enableDomainTransferLock/success.http"))
|
52
|
+
end
|
53
|
+
|
54
|
+
it "builds the correct request" do
|
55
|
+
subject.enable_domain_transfer_lock(account_id, domain_id)
|
56
|
+
|
57
|
+
expect(WebMock).to have_requested(:post, "https://api.dnsimple.test/v2/#{account_id}/registrar/domains/#{domain_id}/transfer_lock")
|
58
|
+
.with(headers: { 'Accept' => 'application/json' })
|
59
|
+
end
|
60
|
+
|
61
|
+
it "returns the transfer lock state" do
|
62
|
+
response = subject.enable_domain_transfer_lock(account_id, domain_id)
|
63
|
+
expect(response).to be_a(Dnsimple::Response)
|
64
|
+
|
65
|
+
result = response.data
|
66
|
+
expect(result).to be_a(Dnsimple::Struct::TransferLock)
|
67
|
+
expect(result.enabled).to be(true)
|
68
|
+
end
|
69
|
+
|
70
|
+
context "when the domain does not exist" do
|
71
|
+
it "raises NotFoundError" do
|
72
|
+
stub_request(:post, %r{/v2})
|
73
|
+
.to_return(read_http_fixture("notfound-domain.http"))
|
74
|
+
|
75
|
+
expect {
|
76
|
+
subject.enable_domain_transfer_lock(account_id, domain_id)
|
77
|
+
}.to raise_error(Dnsimple::NotFoundError)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "#disable_domain_transfer_lock" do
|
83
|
+
let(:account_id) { 1010 }
|
84
|
+
let(:domain_id) { "example.com" }
|
85
|
+
|
86
|
+
before do
|
87
|
+
stub_request(:delete, %r{/v2/#{account_id}/registrar/domains/#{domain_id}})
|
88
|
+
.to_return(read_http_fixture("disableDomainTransferLock/success.http"))
|
89
|
+
end
|
90
|
+
|
91
|
+
it "builds the correct request" do
|
92
|
+
subject.disable_domain_transfer_lock(account_id, domain_id)
|
93
|
+
|
94
|
+
expect(WebMock).to have_requested(:delete, "https://api.dnsimple.test/v2/#{account_id}/registrar/domains/#{domain_id}/transfer_lock")
|
95
|
+
.with(headers: { 'Accept' => 'application/json' })
|
96
|
+
end
|
97
|
+
|
98
|
+
it "returns the transfer lock state" do
|
99
|
+
response = subject.disable_domain_transfer_lock(account_id, domain_id)
|
100
|
+
expect(response).to be_a(Dnsimple::Response)
|
101
|
+
|
102
|
+
result = response.data
|
103
|
+
expect(result).to be_a(Dnsimple::Struct::TransferLock)
|
104
|
+
expect(result.enabled).to be(false)
|
105
|
+
end
|
106
|
+
|
107
|
+
context "when the domain does not exist" do
|
108
|
+
it "raises NotFoundError" do
|
109
|
+
stub_request(:delete, %r{/v2})
|
110
|
+
.to_return(read_http_fixture("notfound-domain.http"))
|
111
|
+
|
112
|
+
expect {
|
113
|
+
subject.disable_domain_transfer_lock(account_id, domain_id)
|
114
|
+
}.to raise_error(Dnsimple::NotFoundError)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Server: nginx
|
3
|
+
Date: Tue, 15 Aug 2023 09:58:37 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Connection: keep-alive
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2398
|
8
|
+
X-RateLimit-Reset: 1488538623
|
9
|
+
ETag: W/"fc2368a31a1b6a3afcca33bb37ff6b9d"
|
10
|
+
Cache-Control: max-age=0, private, must-revalidate
|
11
|
+
X-Request-Id: 8b0fe49a-c810-4552-84ab-a1cd9b4a7786
|
12
|
+
X-Runtime: 0.024780
|
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":{"enabled":false}}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
HTTP/1.1 201 Created
|
2
|
+
Server: nginx
|
3
|
+
Date: Tue, 15 Aug 2023 09:58:37 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Connection: keep-alive
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2398
|
8
|
+
X-RateLimit-Reset: 1488538623
|
9
|
+
ETag: W/"fc2368a31a1b6a3afcca33bb37ff6b9d"
|
10
|
+
Cache-Control: max-age=0, private, must-revalidate
|
11
|
+
X-Request-Id: 8b0fe49a-c810-4552-84ab-a1cd9b4a7786
|
12
|
+
X-Runtime: 0.024780
|
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":{"enabled":true}}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Server: nginx
|
3
|
+
Date: Tue, 15 Aug 2023 09:58:37 GMT
|
4
|
+
Content-Type: application/json; charset=utf-8
|
5
|
+
Connection: keep-alive
|
6
|
+
X-RateLimit-Limit: 2400
|
7
|
+
X-RateLimit-Remaining: 2398
|
8
|
+
X-RateLimit-Reset: 1488538623
|
9
|
+
ETag: W/"fc2368a31a1b6a3afcca33bb37ff6b9d"
|
10
|
+
Cache-Control: max-age=0, private, must-revalidate
|
11
|
+
X-Request-Id: 8b0fe49a-c810-4552-84ab-a1cd9b4a7786
|
12
|
+
X-Runtime: 0.024780
|
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":{"enabled":true}}
|
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.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DNSimple
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08
|
11
|
+
date: 2023-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -125,6 +125,7 @@ files:
|
|
125
125
|
- lib/dnsimple/client/registrar_auto_renewal.rb
|
126
126
|
- lib/dnsimple/client/registrar_delegation.rb
|
127
127
|
- lib/dnsimple/client/registrar_registrant_changes.rb
|
128
|
+
- lib/dnsimple/client/registrar_transfer_lock.rb
|
128
129
|
- lib/dnsimple/client/registrar_whois_privacy.rb
|
129
130
|
- lib/dnsimple/client/services.rb
|
130
131
|
- lib/dnsimple/client/services_domains.rb
|
@@ -169,6 +170,7 @@ files:
|
|
169
170
|
- lib/dnsimple/struct/template.rb
|
170
171
|
- lib/dnsimple/struct/template_record.rb
|
171
172
|
- lib/dnsimple/struct/tld.rb
|
173
|
+
- lib/dnsimple/struct/transfer_lock.rb
|
172
174
|
- lib/dnsimple/struct/user.rb
|
173
175
|
- lib/dnsimple/struct/vanity_name_server.rb
|
174
176
|
- lib/dnsimple/struct/webhook.rb
|
@@ -195,6 +197,7 @@ files:
|
|
195
197
|
- spec/dnsimple/client/registrar_auto_renewal_spec.rb
|
196
198
|
- spec/dnsimple/client/registrar_delegation_spec.rb
|
197
199
|
- spec/dnsimple/client/registrar_spec.rb
|
200
|
+
- spec/dnsimple/client/registrar_transfer_lock_spec.rb
|
198
201
|
- spec/dnsimple/client/registrar_whois_privacy_spec.rb
|
199
202
|
- spec/dnsimple/client/services_domains_spec.rb
|
200
203
|
- spec/dnsimple/client/services_spec.rb
|
@@ -266,11 +269,13 @@ files:
|
|
266
269
|
- spec/fixtures.http/disableDnssec/not-enabled.http
|
267
270
|
- spec/fixtures.http/disableDnssec/success.http
|
268
271
|
- spec/fixtures.http/disableDomainAutoRenewal/success.http
|
272
|
+
- spec/fixtures.http/disableDomainTransferLock/success.http
|
269
273
|
- spec/fixtures.http/disableVanityNameServers/success.http
|
270
274
|
- spec/fixtures.http/disableWhoisPrivacy/success.http
|
271
275
|
- spec/fixtures.http/downloadCertificate/success.http
|
272
276
|
- spec/fixtures.http/enableDnssec/success.http
|
273
277
|
- spec/fixtures.http/enableDomainAutoRenewal/success.http
|
278
|
+
- spec/fixtures.http/enableDomainTransferLock/success.http
|
274
279
|
- spec/fixtures.http/enableVanityNameServers/success.http
|
275
280
|
- spec/fixtures.http/enableWhoisPrivacy/created.http
|
276
281
|
- spec/fixtures.http/enableWhoisPrivacy/success.http
|
@@ -289,6 +294,7 @@ files:
|
|
289
294
|
- spec/fixtures.http/getDomainRegistration/success.http
|
290
295
|
- spec/fixtures.http/getDomainRenewal/success.http
|
291
296
|
- spec/fixtures.http/getDomainTransfer/success.http
|
297
|
+
- spec/fixtures.http/getDomainTransferLock/success.http
|
292
298
|
- spec/fixtures.http/getEmailForward/success.http
|
293
299
|
- spec/fixtures.http/getPrimaryServer/success.http
|
294
300
|
- spec/fixtures.http/getRegistrantChange/success.http
|