internetbs 1.0.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 +7 -0
- data/.gitignore +3 -0
- data/Gemfile +5 -0
- data/LICENSE +19 -0
- data/README.md +758 -0
- data/internetbs.gemspec +18 -0
- data/lib/internetbs.rb +64 -0
- data/lib/internetbs/account_balance.rb +8 -0
- data/lib/internetbs/account_balances.rb +40 -0
- data/lib/internetbs/account_domain.rb +11 -0
- data/lib/internetbs/account_domains.rb +100 -0
- data/lib/internetbs/account_price.rb +19 -0
- data/lib/internetbs/account_prices.rb +70 -0
- data/lib/internetbs/account_transaction.rb +9 -0
- data/lib/internetbs/account_transactions.rb +54 -0
- data/lib/internetbs/additional_attributes.rb +41 -0
- data/lib/internetbs/base.rb +33 -0
- data/lib/internetbs/client.rb +49 -0
- data/lib/internetbs/configuration.rb +61 -0
- data/lib/internetbs/country_codes.rb +288 -0
- data/lib/internetbs/domain_availability.rb +37 -0
- data/lib/internetbs/domain_contact.rb +109 -0
- data/lib/internetbs/domain_host.rb +46 -0
- data/lib/internetbs/domain_hosts.rb +101 -0
- data/lib/internetbs/domain_information.rb +128 -0
- data/lib/internetbs/domain_push.rb +33 -0
- data/lib/internetbs/domain_record.rb +31 -0
- data/lib/internetbs/domain_records.rb +172 -0
- data/lib/internetbs/domain_total.rb +8 -0
- data/lib/internetbs/dot_asia_attributes.rb +56 -0
- data/lib/internetbs/dot_de_attributes.rb +64 -0
- data/lib/internetbs/dot_eu_attributes.rb +20 -0
- data/lib/internetbs/dot_fr_attributes.rb +138 -0
- data/lib/internetbs/dot_it_attributes.rb +182 -0
- data/lib/internetbs/dot_nl_attributes.rb +47 -0
- data/lib/internetbs/dot_uk_attributes.rb +60 -0
- data/lib/internetbs/dot_us_attributes.rb +54 -0
- data/lib/internetbs/error.rb +38 -0
- data/lib/internetbs/language_codes.rb +27 -0
- data/lib/internetbs/order_domain.rb +78 -0
- data/lib/internetbs/private_whois.rb +81 -0
- data/lib/internetbs/registrar_lock.rb +73 -0
- data/lib/internetbs/registry_status.rb +39 -0
- data/lib/internetbs/renew_domain.rb +43 -0
- data/lib/internetbs/update_domain.rb +71 -0
- data/lib/internetbs/version.rb +10 -0
- metadata +104 -0
@@ -0,0 +1,81 @@
|
|
1
|
+
module InternetBS
|
2
|
+
class PrivateWhois < Base
|
3
|
+
attribute :domain, String
|
4
|
+
attribute :privacy_status, String # FULL or PARTIAL or DISABLED or FAILURE
|
5
|
+
|
6
|
+
def disable
|
7
|
+
set_private_whois_status :disable
|
8
|
+
end
|
9
|
+
|
10
|
+
def enable
|
11
|
+
set_private_whois_status :enable
|
12
|
+
end
|
13
|
+
|
14
|
+
def fetch
|
15
|
+
ensure_attribute_has_value :domain
|
16
|
+
return false if @errors.any?
|
17
|
+
|
18
|
+
params = {'domain' => @domain}
|
19
|
+
response = Client.get('/domain/privatewhois/status', params)
|
20
|
+
code = response.code rescue ""
|
21
|
+
|
22
|
+
case code
|
23
|
+
when '200'
|
24
|
+
hash = JSON.parse(response.body)
|
25
|
+
|
26
|
+
@status = hash['status']
|
27
|
+
@transaction_id = hash['transactid']
|
28
|
+
|
29
|
+
if @status == 'SUCCESS'
|
30
|
+
@privacy_status = hash['privatewhoisstatus']
|
31
|
+
else
|
32
|
+
set_errors(response)
|
33
|
+
return false
|
34
|
+
end
|
35
|
+
|
36
|
+
return true
|
37
|
+
else
|
38
|
+
set_errors(response)
|
39
|
+
return false
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
# Expects an action of either :enable or :disable.
|
46
|
+
def set_private_whois_status(action)
|
47
|
+
ensure_attribute_has_value :domain
|
48
|
+
return false if @errors.any?
|
49
|
+
|
50
|
+
params = {'domain' => @domain}
|
51
|
+
|
52
|
+
if action == 'enable' && @privacy_status
|
53
|
+
optional_params = {'type' => @privacy_status}
|
54
|
+
params.merge!(optional_params)
|
55
|
+
end
|
56
|
+
|
57
|
+
response = Client.post("/domain/privatewhois/#{action.to_s}", params)
|
58
|
+
code = response.code rescue ""
|
59
|
+
|
60
|
+
case code
|
61
|
+
when '200'
|
62
|
+
hash = JSON.parse(response.body)
|
63
|
+
|
64
|
+
@status = hash['status']
|
65
|
+
@transaction_id = hash['transactid']
|
66
|
+
|
67
|
+
if @status == 'SUCCESS'
|
68
|
+
@privacy_status = hash['privatewhoisstatus']
|
69
|
+
else
|
70
|
+
set_errors(response)
|
71
|
+
return false
|
72
|
+
end
|
73
|
+
|
74
|
+
return true
|
75
|
+
else
|
76
|
+
set_errors(response)
|
77
|
+
return false
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module InternetBS
|
2
|
+
class RegistrarLock < Base
|
3
|
+
attribute :domain, String
|
4
|
+
attribute :lock_status, String # LOCKED or UNLOCKED
|
5
|
+
|
6
|
+
def disable
|
7
|
+
set_registrar_lock_status :disable
|
8
|
+
end
|
9
|
+
|
10
|
+
def enable
|
11
|
+
set_registrar_lock_status :enable
|
12
|
+
end
|
13
|
+
|
14
|
+
def fetch
|
15
|
+
ensure_attribute_has_value :domain
|
16
|
+
return false if @errors.any?
|
17
|
+
|
18
|
+
params = {'domain' => @domain}
|
19
|
+
response = Client.get('/domain/registrarlock/status', params)
|
20
|
+
code = response.code rescue ""
|
21
|
+
|
22
|
+
case code
|
23
|
+
when '200'
|
24
|
+
hash = JSON.parse(response.body)
|
25
|
+
|
26
|
+
@status = hash['status']
|
27
|
+
@transaction_id = hash['transactid']
|
28
|
+
|
29
|
+
if @status == 'SUCCESS'
|
30
|
+
@lock_status = hash['registrar_lock_status']
|
31
|
+
else
|
32
|
+
set_errors(response)
|
33
|
+
return false
|
34
|
+
end
|
35
|
+
|
36
|
+
return true
|
37
|
+
else
|
38
|
+
set_errors(response)
|
39
|
+
return false
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
# Expects an action of either :enable or :disable.
|
46
|
+
def set_registrar_lock_status(action)
|
47
|
+
ensure_attribute_has_value :domain
|
48
|
+
return false if @errors.any?
|
49
|
+
|
50
|
+
params = {'domain' => @domain}
|
51
|
+
response = Client.post("/domain/registrarlock/#{action.to_s}", params)
|
52
|
+
code = response.code rescue ""
|
53
|
+
|
54
|
+
case code
|
55
|
+
when '200'
|
56
|
+
hash = JSON.parse(response.body)
|
57
|
+
|
58
|
+
@status = hash['status']
|
59
|
+
@transaction_id = hash['transactid']
|
60
|
+
|
61
|
+
unless @status == 'SUCCESS'
|
62
|
+
set_errors(response)
|
63
|
+
return false
|
64
|
+
end
|
65
|
+
|
66
|
+
return true
|
67
|
+
else
|
68
|
+
set_errors(response)
|
69
|
+
return false
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module InternetBS
|
2
|
+
class RegistryStatus < Base
|
3
|
+
attribute :domain, String
|
4
|
+
attribute :registry_status, String # clientTransferProhibited
|
5
|
+
|
6
|
+
def fetch
|
7
|
+
ensure_attribute_has_value :domain
|
8
|
+
return false if @errors.any?
|
9
|
+
|
10
|
+
params = {'domain' => @domain}
|
11
|
+
response = Client.get('/domain/registrystatus', params)
|
12
|
+
code = response.code rescue ""
|
13
|
+
|
14
|
+
case code
|
15
|
+
when '200'
|
16
|
+
hash = JSON.parse(response.body)
|
17
|
+
|
18
|
+
@status = hash['status']
|
19
|
+
@transaction_id = hash['transactid']
|
20
|
+
|
21
|
+
if @status == 'SUCCESS'
|
22
|
+
if hash['registrystatus'].is_a?(Array)
|
23
|
+
@registry_status = hash['registrystatus'].first
|
24
|
+
else
|
25
|
+
@registry_status = hash['registrystatus']
|
26
|
+
end
|
27
|
+
else
|
28
|
+
set_errors(response)
|
29
|
+
return false
|
30
|
+
end
|
31
|
+
|
32
|
+
return true
|
33
|
+
else
|
34
|
+
set_errors(response)
|
35
|
+
return false
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module InternetBS
|
2
|
+
class RenewDomain < Base
|
3
|
+
attribute :currency, String, :default => 'USD'
|
4
|
+
attribute :discount_code, String
|
5
|
+
attribute :domain, String
|
6
|
+
attribute :period, String, :default => '1Y' # 1Y, 2Y up to 10Y
|
7
|
+
attribute :total_price, Float
|
8
|
+
|
9
|
+
def purchase!
|
10
|
+
ensure_attribute_has_value :domain
|
11
|
+
return false if @errors.any?
|
12
|
+
|
13
|
+
params = {'domain' => @domain}
|
14
|
+
params.merge!({'period' => @period}) if @period
|
15
|
+
params.merge!({'discountcode' => @discount_code}) if @discount_code
|
16
|
+
|
17
|
+
response = Client.post('/domain/renew', params)
|
18
|
+
code = response.code rescue ""
|
19
|
+
|
20
|
+
case code
|
21
|
+
when '200'
|
22
|
+
hash = JSON.parse(response.body)
|
23
|
+
|
24
|
+
@status = hash['status']
|
25
|
+
@transaction_id = hash['transactid']
|
26
|
+
|
27
|
+
if @status == 'SUCCESS'
|
28
|
+
@currency = hash['currency']
|
29
|
+
@total_price = hash['price']
|
30
|
+
else
|
31
|
+
set_errors(response)
|
32
|
+
return false
|
33
|
+
end
|
34
|
+
|
35
|
+
return true
|
36
|
+
else
|
37
|
+
set_errors(response)
|
38
|
+
return false
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module InternetBS
|
2
|
+
class UpdateDomain < Base
|
3
|
+
attribute :auto_renew, Boolean # YES or NO
|
4
|
+
attribute :contacts, Array[DomainContact]
|
5
|
+
attribute :domain, String
|
6
|
+
attribute :domain_extension, String
|
7
|
+
attribute :nameservers, Array[String]
|
8
|
+
attribute :private_whois, String # DISABLED or FULL or PARTIAL
|
9
|
+
attribute :registrar_lock, String # ENABLED or DISABLED or NOTADMITTED
|
10
|
+
attribute :tel_hosting_account, String # .tel domains only
|
11
|
+
attribute :tel_hosting_password, String # .tel domains only
|
12
|
+
attribute :tel_hide_whois_data, Boolean # .tel domains only, either YES or NO
|
13
|
+
attribute :transfer_auth_info, String
|
14
|
+
|
15
|
+
def update!
|
16
|
+
ensure_attribute_has_value :domain
|
17
|
+
return false if @errors.any?
|
18
|
+
|
19
|
+
@domain_extension = @domain.split('.').last
|
20
|
+
|
21
|
+
params = {'domain' => @domain}
|
22
|
+
|
23
|
+
params.merge!({'transferauthinfo' => @transfer_auth_info}) if @transfer_auth_info
|
24
|
+
parmas.merge!({'registrarlock' => @registrar_lock}) if @registrar_lock
|
25
|
+
params.merge!({'privatewhois' => @private_whois}) if @private_whois
|
26
|
+
params.merge!({'autorenew' => @auto_renew ? 'YES' : 'NO'}) if @auto_renew
|
27
|
+
|
28
|
+
if @nameservers.any?
|
29
|
+
params.merge!({'ns_list' => @nameservers.join(',')})
|
30
|
+
end
|
31
|
+
|
32
|
+
if @contacts.any?
|
33
|
+
@contacts.each do |contact|
|
34
|
+
contact.domain_extension = @domain_extension
|
35
|
+
params.merge!(contact.params)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
if @domain_extension == "tel"
|
40
|
+
params.merge!({'telhostingaccount' => @tel_hosting_account}) if @tel_hosting_account
|
41
|
+
params.merge!({'telhostingpassword' => @tel_hosting_password}) if @tel_hosting_password
|
42
|
+
params.merge!({'telhidewhoisdata' => @tel_hide_whois_data ? 'YES' : 'NO'}) if @tel_hide_whois_data
|
43
|
+
end
|
44
|
+
|
45
|
+
response = Client.post('/domain/update', params)
|
46
|
+
code = response.code rescue ""
|
47
|
+
|
48
|
+
case code
|
49
|
+
when '200'
|
50
|
+
hash = JSON.parse(response.body)
|
51
|
+
|
52
|
+
@status = hash['status']
|
53
|
+
@transaction_id = hash['transactid']
|
54
|
+
|
55
|
+
if @status == 'SUCCESS'
|
56
|
+
|
57
|
+
debugger
|
58
|
+
else
|
59
|
+
set_errors(response)
|
60
|
+
return false
|
61
|
+
end
|
62
|
+
|
63
|
+
return true
|
64
|
+
else
|
65
|
+
set_errors(response)
|
66
|
+
return false
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: internetbs
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jurgen Jocubeit
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: virtus
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.3
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.3
|
27
|
+
description: A Ruby API client for InternetBS resellers.
|
28
|
+
email: support@brightcommerce.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- ".gitignore"
|
34
|
+
- Gemfile
|
35
|
+
- LICENSE
|
36
|
+
- README.md
|
37
|
+
- internetbs.gemspec
|
38
|
+
- lib/internetbs.rb
|
39
|
+
- lib/internetbs/account_balance.rb
|
40
|
+
- lib/internetbs/account_balances.rb
|
41
|
+
- lib/internetbs/account_domain.rb
|
42
|
+
- lib/internetbs/account_domains.rb
|
43
|
+
- lib/internetbs/account_price.rb
|
44
|
+
- lib/internetbs/account_prices.rb
|
45
|
+
- lib/internetbs/account_transaction.rb
|
46
|
+
- lib/internetbs/account_transactions.rb
|
47
|
+
- lib/internetbs/additional_attributes.rb
|
48
|
+
- lib/internetbs/base.rb
|
49
|
+
- lib/internetbs/client.rb
|
50
|
+
- lib/internetbs/configuration.rb
|
51
|
+
- lib/internetbs/country_codes.rb
|
52
|
+
- lib/internetbs/domain_availability.rb
|
53
|
+
- lib/internetbs/domain_contact.rb
|
54
|
+
- lib/internetbs/domain_host.rb
|
55
|
+
- lib/internetbs/domain_hosts.rb
|
56
|
+
- lib/internetbs/domain_information.rb
|
57
|
+
- lib/internetbs/domain_push.rb
|
58
|
+
- lib/internetbs/domain_record.rb
|
59
|
+
- lib/internetbs/domain_records.rb
|
60
|
+
- lib/internetbs/domain_total.rb
|
61
|
+
- lib/internetbs/dot_asia_attributes.rb
|
62
|
+
- lib/internetbs/dot_de_attributes.rb
|
63
|
+
- lib/internetbs/dot_eu_attributes.rb
|
64
|
+
- lib/internetbs/dot_fr_attributes.rb
|
65
|
+
- lib/internetbs/dot_it_attributes.rb
|
66
|
+
- lib/internetbs/dot_nl_attributes.rb
|
67
|
+
- lib/internetbs/dot_uk_attributes.rb
|
68
|
+
- lib/internetbs/dot_us_attributes.rb
|
69
|
+
- lib/internetbs/error.rb
|
70
|
+
- lib/internetbs/language_codes.rb
|
71
|
+
- lib/internetbs/order_domain.rb
|
72
|
+
- lib/internetbs/private_whois.rb
|
73
|
+
- lib/internetbs/registrar_lock.rb
|
74
|
+
- lib/internetbs/registry_status.rb
|
75
|
+
- lib/internetbs/renew_domain.rb
|
76
|
+
- lib/internetbs/update_domain.rb
|
77
|
+
- lib/internetbs/version.rb
|
78
|
+
homepage: https://github.com/brightcommerce/internetbs
|
79
|
+
licenses:
|
80
|
+
- MIT
|
81
|
+
metadata:
|
82
|
+
copyright: Copyright 2015 Brightcommerce, Inc.
|
83
|
+
post_install_message:
|
84
|
+
rdoc_options: []
|
85
|
+
require_paths:
|
86
|
+
- lib
|
87
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: 2.0.0
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
requirements: []
|
98
|
+
rubyforge_project:
|
99
|
+
rubygems_version: 2.4.5
|
100
|
+
signing_key:
|
101
|
+
specification_version: 4
|
102
|
+
summary: InternetBS Ruby Client v1.0.0
|
103
|
+
test_files: []
|
104
|
+
has_rdoc:
|