mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44:47 +02:00
Add disputes to the list of retained domains
This commit is contained in:
parent
f7f810ad0e
commit
011967d8ea
2 changed files with 64 additions and 5 deletions
|
@ -3,6 +3,7 @@
|
|||
class RetainedDomains
|
||||
RESERVED = 'reserved'.freeze
|
||||
BLOCKED = 'blocked'.freeze
|
||||
DISPUTED = 'disputed'.freeze
|
||||
|
||||
attr_reader :domains,
|
||||
:type
|
||||
|
@ -26,14 +27,15 @@ class RetainedDomains
|
|||
case type
|
||||
when RESERVED then :reserved
|
||||
when BLOCKED then :blocked
|
||||
when DISPUTED then :disputed
|
||||
else :all
|
||||
end
|
||||
end
|
||||
|
||||
def gather_domains
|
||||
domains = blocked_domains.to_a.union(reserved_domains.to_a)
|
||||
|
||||
domains.sort_by(&:name)
|
||||
blocked_domains.to_a
|
||||
.union(reserved_domains.to_a)
|
||||
.union(disputed_domains.to_a)
|
||||
end
|
||||
|
||||
def blocked_domains
|
||||
|
@ -52,16 +54,30 @@ class RetainedDomains
|
|||
end
|
||||
end
|
||||
|
||||
def disputed_domains
|
||||
if %i[all disputed].include?(type)
|
||||
Dispute.order(domain_name: :desc).active
|
||||
else
|
||||
[]
|
||||
end
|
||||
end
|
||||
|
||||
def domain_to_jsonable(domain)
|
||||
status = case domain
|
||||
when ReservedDomain then RESERVED
|
||||
when BlockedDomain then BLOCKED
|
||||
when Dispute then DISPUTED
|
||||
end
|
||||
|
||||
punycode = SimpleIDN.to_ascii(domain.name)
|
||||
domain_name = case domain
|
||||
when Dispute then domain.domain_name
|
||||
else domain.name
|
||||
end
|
||||
|
||||
punycode = SimpleIDN.to_ascii(domain_name)
|
||||
|
||||
{
|
||||
name: domain.name,
|
||||
name: domain_name,
|
||||
status: status,
|
||||
punycode_name: punycode,
|
||||
}
|
||||
|
|
|
@ -37,6 +37,49 @@ class ReppV1RetainedDomainsTest < ActionDispatch::IntegrationTest
|
|||
assert_equal response_json[:domains], expected_objects
|
||||
end
|
||||
|
||||
def test_get_index_disputed_type
|
||||
dispute = Dispute.new(domain_name: 'disputed.test', starts_at: Time.zone.today, password: 'disputepw')
|
||||
dispute.save
|
||||
|
||||
get repp_v1_retained_domains_path({ 'type' => 'disputed' })
|
||||
response_json = JSON.parse(response.body, symbolize_names: true)
|
||||
|
||||
assert response_json[:count] == 1
|
||||
|
||||
expected_objects = [{ name: 'disputed.test',
|
||||
status: 'disputed',
|
||||
punycode_name: 'disputed.test' }]
|
||||
|
||||
assert_equal response_json[:domains], expected_objects
|
||||
end
|
||||
|
||||
# A disputed domain can be also reserved, and according
|
||||
# to business rules it should appear on the list twice.
|
||||
def test_domain_can_appear_twice_if_it_is_disputed_and_reserved
|
||||
dispute = Dispute.new(domain_name: 'reserved.test', starts_at: Time.zone.today, password: 'disputepw')
|
||||
dispute.save
|
||||
|
||||
get repp_v1_retained_domains_path
|
||||
response_json = JSON.parse(response.body, symbolize_names: true)
|
||||
|
||||
assert response_json[:count] == 4
|
||||
|
||||
expected_objects = [{ name: 'blocked.test',
|
||||
status: 'blocked',
|
||||
punycode_name: 'blocked.test' },
|
||||
{ name: 'blockedäöüõ.test',
|
||||
status: 'blocked',
|
||||
punycode_name: 'xn--blocked-cxa7mj0e.test' },
|
||||
{ name: 'reserved.test',
|
||||
status: 'reserved',
|
||||
punycode_name: 'reserved.test' },
|
||||
{ name: 'reserved.test',
|
||||
status: 'disputed',
|
||||
punycode_name: 'reserved.test' }]
|
||||
|
||||
assert_equal response_json[:domains], expected_objects
|
||||
end
|
||||
|
||||
def test_etags_cache
|
||||
get repp_v1_retained_domains_path({ 'type' => 'reserved' })
|
||||
etag = response.headers['ETag']
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue