metadata_presenter 2.0.1 → 2.2.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/app/models/metadata_presenter/next_page.rb +1 -3
- data/app/models/metadata_presenter/page.rb +23 -10
- data/app/models/metadata_presenter/previous_page.rb +1 -17
- data/app/models/metadata_presenter/service.rb +9 -9
- data/app/models/metadata_presenter/traversed_pages.rb +0 -2
- data/app/presenters/metadata_presenter/page_answers_presenter.rb +1 -1
- data/app/views/metadata_presenter/page/checkanswers.html.erb +4 -4
- data/app/views/metadata_presenter/page/confirmation.html.erb +2 -2
- data/app/views/metadata_presenter/page/content.html.erb +2 -2
- data/app/views/metadata_presenter/page/multiplequestions.html.erb +2 -2
- data/config/initializers/{page_components.rb → supported_components.rb} +1 -1
- data/fixtures/invalid_content_page.json +14 -1
- data/fixtures/no_component_page.json +14 -1
- data/fixtures/non_finished_service.json +30 -5
- data/fixtures/service.json +8 -1
- data/fixtures/version.json +86 -15
- data/lib/metadata_presenter/version.rb +1 -1
- metadata +3 -6
- data/fixtures/no_flow_service.json +0 -190
- data/fixtures/service_with_flow.json +0 -86
- data/fixtures/version_with_flow.json +0 -679
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec8517c93b646b82f9084516869dd500189ee28718b67cbf15f681e71b3ae83f
|
4
|
+
data.tar.gz: 31476c840217b5fa8bceb6ccd1e3e008e33784a3fb5506018192e54901e0330a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4bace053abc5af0fc2ba23a7d64348a2bc23aefed4df1e834138988138d6c24fb04ffd552a594537794e76b35308d98e5bf75efed844d99266fc88f0d3b0a861
|
7
|
+
data.tar.gz: aa40d60598b4217c2a0296e61ec5500d1b6df03037783c63de58415d18c1a1819866978e275518fb4e794676f643f1a7b9525c6f3c5e9319a37a66cfc70cfc15
|
@@ -8,10 +8,8 @@ module MetadataPresenter
|
|
8
8
|
|
9
9
|
if conditionals?
|
10
10
|
evaluate_conditionals
|
11
|
-
elsif current_page_flow.present?
|
12
|
-
service.find_page_by_uuid(current_page_flow.default_next)
|
13
11
|
else
|
14
|
-
service.
|
12
|
+
service.find_page_by_uuid(current_page_flow.default_next)
|
15
13
|
end
|
16
14
|
end
|
17
15
|
|
@@ -12,6 +12,7 @@ module MetadataPresenter
|
|
12
12
|
add_component
|
13
13
|
add_extra_component
|
14
14
|
].freeze
|
15
|
+
QUESTION_PAGES = %w[page.singlequestion page.multiplequestions].freeze
|
15
16
|
|
16
17
|
def editable_attributes
|
17
18
|
to_h.reject { |k, _| k.in?(NOT_EDITABLE) }
|
@@ -33,11 +34,19 @@ module MetadataPresenter
|
|
33
34
|
to_components(metadata.extra_components, collection: :extra_components)
|
34
35
|
end
|
35
36
|
|
36
|
-
def
|
37
|
-
|
37
|
+
def input_components
|
38
|
+
all_components.reject(&:content?)
|
39
|
+
end
|
40
|
+
|
41
|
+
def content_components
|
42
|
+
all_components.select(&:content?)
|
43
|
+
end
|
44
|
+
|
45
|
+
def supported_components_by_type(type)
|
46
|
+
supported = supported_components(raw_type)[type]
|
38
47
|
|
39
48
|
all_components.select do |component|
|
40
|
-
|
49
|
+
supported.include?(component.type)
|
41
50
|
end
|
42
51
|
end
|
43
52
|
|
@@ -49,12 +58,12 @@ module MetadataPresenter
|
|
49
58
|
"metadata_presenter/#{type.gsub('.', '/')}"
|
50
59
|
end
|
51
60
|
|
52
|
-
def
|
53
|
-
|
61
|
+
def supported_input_components
|
62
|
+
supported_components(raw_type)[:input]
|
54
63
|
end
|
55
64
|
|
56
|
-
def
|
57
|
-
|
65
|
+
def supported_content_components
|
66
|
+
supported_components(raw_type)[:content]
|
58
67
|
end
|
59
68
|
|
60
69
|
def upload_components
|
@@ -65,6 +74,10 @@ module MetadataPresenter
|
|
65
74
|
type == 'page.standalone'
|
66
75
|
end
|
67
76
|
|
77
|
+
def question_page?
|
78
|
+
type.in?(QUESTION_PAGES)
|
79
|
+
end
|
80
|
+
|
68
81
|
def title
|
69
82
|
return heading if heading?
|
70
83
|
|
@@ -87,10 +100,10 @@ module MetadataPresenter
|
|
87
100
|
end
|
88
101
|
end
|
89
102
|
|
90
|
-
def
|
91
|
-
values = Rails.application.config.
|
103
|
+
def supported_components(page_type)
|
104
|
+
values = Rails.application.config.supported_components[page_type]
|
92
105
|
if values.blank?
|
93
|
-
raise PageComponentsNotDefinedError, "No
|
106
|
+
raise PageComponentsNotDefinedError, "No supported components defined for #{page_type} in config initialiser"
|
94
107
|
end
|
95
108
|
|
96
109
|
values
|
@@ -4,29 +4,13 @@ module MetadataPresenter
|
|
4
4
|
attr_accessor :service, :user_data, :current_page, :referrer
|
5
5
|
|
6
6
|
def page
|
7
|
-
# what happens when a user enters in the middle of the flow
|
8
7
|
return if no_current_or_referrer_pages? || service.no_back_link?(current_page)
|
9
8
|
|
10
|
-
|
11
|
-
return referrer_page if return_to_referrer?
|
12
|
-
|
13
|
-
TraversedPages.new(service, user_data, current_page).last
|
14
|
-
else
|
15
|
-
service.previous_page(current_page: current_page, referrer: referrer)
|
16
|
-
end
|
9
|
+
TraversedPages.new(service, user_data, current_page).last
|
17
10
|
end
|
18
11
|
|
19
12
|
private
|
20
13
|
|
21
|
-
def referrer_page
|
22
|
-
@referrer_page ||= service.find_page_by_url(URI(referrer).path)
|
23
|
-
end
|
24
|
-
|
25
|
-
def return_to_referrer?
|
26
|
-
current_page.standalone? ||
|
27
|
-
(referrer_page && referrer_page.standalone?)
|
28
|
-
end
|
29
|
-
|
30
14
|
def no_current_or_referrer_pages?
|
31
15
|
current_page.blank? || referrer.nil?
|
32
16
|
end
|
@@ -38,14 +38,6 @@ class MetadataPresenter::Service < MetadataPresenter::Metadata
|
|
38
38
|
pages[pages.index(current_page) + 1] if current_page.present?
|
39
39
|
end
|
40
40
|
|
41
|
-
def previous_page(current_page:, referrer:)
|
42
|
-
return if current_page.nil? || referrer.nil?
|
43
|
-
|
44
|
-
unless no_back_link?(current_page)
|
45
|
-
flow_page(current_page) || referrer_page(referrer)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
41
|
def confirmation_page
|
50
42
|
@confirmation_page ||= pages.find do |page|
|
51
43
|
page.type == 'page.confirmation'
|
@@ -57,7 +49,15 @@ class MetadataPresenter::Service < MetadataPresenter::Metadata
|
|
57
49
|
end
|
58
50
|
|
59
51
|
def no_back_link?(current_page)
|
60
|
-
current_page == start_page ||
|
52
|
+
current_page == start_page ||
|
53
|
+
current_page == confirmation_page ||
|
54
|
+
current_page.standalone?
|
55
|
+
end
|
56
|
+
|
57
|
+
def page_with_component(uuid)
|
58
|
+
pages.find do |page|
|
59
|
+
Array(page.components).any? { |component| component.uuid == uuid }
|
60
|
+
end
|
61
61
|
end
|
62
62
|
|
63
63
|
private
|
@@ -10,7 +10,7 @@ module MetadataPresenter
|
|
10
10
|
|
11
11
|
def self.map(view:, pages:, answers:)
|
12
12
|
user_input_pages(pages).map { |page|
|
13
|
-
Array(page.
|
13
|
+
Array(page.supported_components_by_type(:input)).map do |component|
|
14
14
|
new(
|
15
15
|
view: view,
|
16
16
|
component: component,
|
@@ -16,8 +16,8 @@
|
|
16
16
|
components: @page.extra_components,
|
17
17
|
tag: nil,
|
18
18
|
classes: nil,
|
19
|
-
input_components: @page.
|
20
|
-
content_components: @page.
|
19
|
+
input_components: @page.supported_input_components,
|
20
|
+
content_components: @page.supported_content_components
|
21
21
|
} %>
|
22
22
|
|
23
23
|
<dl class="fb-block fb-block-answers govuk-summary-list">
|
@@ -80,8 +80,8 @@
|
|
80
80
|
components: @page.components,
|
81
81
|
tag: nil,
|
82
82
|
classes: nil,
|
83
|
-
input_components: @page.
|
84
|
-
content_components: @page.
|
83
|
+
input_components: @page.supported_input_components,
|
84
|
+
content_components: @page.supported_content_components
|
85
85
|
} %>
|
86
86
|
|
87
87
|
<button <%= 'disabled' if editable? %> data-prevent-double-click="true" class="fb-block fb-block-actions govuk-button" data-module="govuk-button" data-block-id="actions" data-block-type="actions">
|
@@ -29,7 +29,7 @@
|
|
29
29
|
components: @page.components,
|
30
30
|
tag: nil,
|
31
31
|
classes: nil,
|
32
|
-
input_components: @page.
|
33
|
-
content_components: @page.
|
32
|
+
input_components: @page.supported_input_components,
|
33
|
+
content_components: @page.supported_content_components
|
34
34
|
} %>
|
35
35
|
</div>
|
@@ -21,8 +21,8 @@
|
|
21
21
|
components: @page.components,
|
22
22
|
tag: nil,
|
23
23
|
classes: nil,
|
24
|
-
input_components: @page.
|
25
|
-
content_components: @page.
|
24
|
+
input_components: @page.supported_input_components,
|
25
|
+
content_components: @page.supported_content_components
|
26
26
|
} %>
|
27
27
|
|
28
28
|
<%= f.govuk_submit(disabled: editable?) %>
|
@@ -13,8 +13,8 @@
|
|
13
13
|
components: @page.components,
|
14
14
|
tag: :h2,
|
15
15
|
classes: 'govuk-heading-m govuk-!-margin-top-8',
|
16
|
-
input_components: @page.
|
17
|
-
content_components: @page.
|
16
|
+
input_components: @page.supported_input_components,
|
17
|
+
content_components: @page.supported_content_components
|
18
18
|
}
|
19
19
|
%>
|
20
20
|
|
@@ -33,6 +33,20 @@
|
|
33
33
|
]
|
34
34
|
}
|
35
35
|
},
|
36
|
+
"flow": {
|
37
|
+
"9626b2e9-5ef0-4070-8331-ac55151b22c4": {
|
38
|
+
"_type": "flow.page",
|
39
|
+
"next": {
|
40
|
+
"default": "1ed3e4ad-5098-41c9-b4b6-426e89f7804e"
|
41
|
+
}
|
42
|
+
},
|
43
|
+
"1ed3e4ad-5098-41c9-b4b6-426e89f7804e": {
|
44
|
+
"_type": "flow.page",
|
45
|
+
"next": {
|
46
|
+
"default": ""
|
47
|
+
}
|
48
|
+
}
|
49
|
+
},
|
36
50
|
"pages": [
|
37
51
|
{
|
38
52
|
"_uuid": "9626b2e9-5ef0-4070-8331-ac55151b22c4",
|
@@ -42,7 +56,6 @@
|
|
42
56
|
"lede": "Use this service to:",
|
43
57
|
"body": "Use this service to:\r\n\r\n* do something\r\n* update your name, address or other details\r\n* do something else\r\n\r\nRegistering takes around 5 minutes.",
|
44
58
|
"before_you_start": "###Before you start\r\nYou can also register by post.\r\n\r\nThe online service is also available in Welsh (Cymraeg).\r\n\r\nYou cannot register for this service if you’re in the UK illegally.",
|
45
|
-
"steps": [],
|
46
59
|
"url": "/"
|
47
60
|
},
|
48
61
|
{
|
@@ -33,6 +33,20 @@
|
|
33
33
|
]
|
34
34
|
}
|
35
35
|
},
|
36
|
+
"flow": {
|
37
|
+
"9626b2e9-5ef0-4070-8331-ac55151b22c4": {
|
38
|
+
"_type": "flow.page",
|
39
|
+
"next": {
|
40
|
+
"default": "1ed3e4ad-5098-41c9-b4b6-426e89f7804e"
|
41
|
+
}
|
42
|
+
},
|
43
|
+
"b238a22f-c180-48d0-a7d9-8aad2036f1f2": {
|
44
|
+
"_type": "flow.page",
|
45
|
+
"next": {
|
46
|
+
"default": ""
|
47
|
+
}
|
48
|
+
}
|
49
|
+
},
|
36
50
|
"pages": [
|
37
51
|
{
|
38
52
|
"_uuid": "9626b2e9-5ef0-4070-8331-ac55151b22c4",
|
@@ -42,7 +56,6 @@
|
|
42
56
|
"lede": "Use this service to:",
|
43
57
|
"body": "Use this service to:\r\n\r\n* do something\r\n* update your name, address or other details\r\n* do something else\r\n\r\nRegistering takes around 5 minutes.",
|
44
58
|
"before_you_start": "###Before you start\r\nYou can also register by post.\r\n\r\nThe online service is also available in Welsh (Cymraeg).\r\n\r\nYou cannot register for this service if you’re in the UK illegally.",
|
45
|
-
"steps": [],
|
46
59
|
"url": "/"
|
47
60
|
},
|
48
61
|
{
|
@@ -34,23 +34,46 @@
|
|
34
34
|
]
|
35
35
|
}
|
36
36
|
},
|
37
|
+
"flow": {
|
38
|
+
"cf6dc32f-502c-4215-8c27-1151a45735bb": {
|
39
|
+
"_type": "flow.page",
|
40
|
+
"next": {
|
41
|
+
"default": "9e1ba77f-f1e5-42f4-b090-437aa9af7f73"
|
42
|
+
}
|
43
|
+
},
|
44
|
+
"9e1ba77f-f1e5-42f4-b090-437aa9af7f73": {
|
45
|
+
"_type": "flow.page",
|
46
|
+
"next": {
|
47
|
+
"default": "68fbb180-9a2a-48f6-9da6-545e28b8d35a"
|
48
|
+
}
|
49
|
+
},
|
50
|
+
"68fbb180-9a2a-48f6-9da6-545e28b8d35a": {
|
51
|
+
"_type": "flow.page",
|
52
|
+
"next": {
|
53
|
+
"default": "09e91fd9-7a46-4840-adbc-244d545cfef7"
|
54
|
+
}
|
55
|
+
},
|
56
|
+
"09e91fd9-7a46-4840-adbc-244d545cfef7": {
|
57
|
+
"_type": "flow.page",
|
58
|
+
"next": {
|
59
|
+
"default": ""
|
60
|
+
}
|
61
|
+
}
|
62
|
+
},
|
37
63
|
"pages": [
|
38
64
|
{
|
39
65
|
"_id": "page.start",
|
40
66
|
"_type": "page.start",
|
67
|
+
"_uuid": "cf6dc32f-502c-4215-8c27-1151a45735bb",
|
41
68
|
"heading": "Service name goes here",
|
42
69
|
"lede": "This is your start page first paragraph. You can only have one paragraph here.",
|
43
70
|
"body": "Use this service to:\r\n\r\n* do something\r\n* update your name, address or other details\r\n* do something else\r\n\r\nRegistering takes around 5 minutes.",
|
44
|
-
"steps": [
|
45
|
-
"page.name",
|
46
|
-
"page.email-address",
|
47
|
-
"page.parent_name"
|
48
|
-
],
|
49
71
|
"url": "/"
|
50
72
|
},
|
51
73
|
{
|
52
74
|
"_id": "page.name",
|
53
75
|
"_type": "page.singlequestion",
|
76
|
+
"_uuid": "9e1ba77f-f1e5-42f4-b090-437aa9af7f73",
|
54
77
|
"components": [
|
55
78
|
{
|
56
79
|
"_id": "page.name--text.auto_name__1",
|
@@ -70,6 +93,7 @@
|
|
70
93
|
{
|
71
94
|
"_id": "page.email-address",
|
72
95
|
"_type": "page.singlequestion",
|
96
|
+
"_uuid": "68fbb180-9a2a-48f6-9da6-545e28b8d35a",
|
73
97
|
"heading": "Email address",
|
74
98
|
"components": [
|
75
99
|
{
|
@@ -101,6 +125,7 @@
|
|
101
125
|
{
|
102
126
|
"_id": "page.parent_name",
|
103
127
|
"_type": "page.singlequestion",
|
128
|
+
"_uuid": "09e91fd9-7a46-4840-adbc-244d545cfef7",
|
104
129
|
"components": [
|
105
130
|
{
|
106
131
|
"_id": "page.parent-name--text.auto_name__3",
|
data/fixtures/service.json
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
{
|
2
2
|
"_id": "service.base",
|
3
3
|
"_type": "service.base",
|
4
|
+
"flow": {
|
5
|
+
"86ed04ac-1727-4172-8dd2-608009f1a656": {
|
6
|
+
"_type": "flow.page",
|
7
|
+
"next": {
|
8
|
+
"default": ""
|
9
|
+
}
|
10
|
+
}
|
11
|
+
},
|
4
12
|
"pages": [
|
5
13
|
{
|
6
14
|
"_id": "page.start",
|
@@ -9,7 +17,6 @@
|
|
9
17
|
"lede": "",
|
10
18
|
"_type": "page.start",
|
11
19
|
"_uuid": "86ed04ac-1727-4172-8dd2-608009f1a656",
|
12
|
-
"steps": [],
|
13
20
|
"heading": "Service name goes here",
|
14
21
|
"before_you_start": "###Before you start\r\nYou can also register by post.\r\n\r\nThe online service is also available in Welsh (Cymraeg).\r\n\r\nYou cannot register for this service if you’re in the UK illegally."
|
15
22
|
}
|
data/fixtures/version.json
CHANGED
@@ -1,6 +1,92 @@
|
|
1
1
|
{
|
2
2
|
"_id": "service.base",
|
3
3
|
"_type": "service.base",
|
4
|
+
"flow": {
|
5
|
+
"cf6dc32f-502c-4215-8c27-1151a45735bb": {
|
6
|
+
"_type": "flow.page",
|
7
|
+
"next": {
|
8
|
+
"default": "9e1ba77f-f1e5-42f4-b090-437aa9af7f73"
|
9
|
+
}
|
10
|
+
},
|
11
|
+
"9e1ba77f-f1e5-42f4-b090-437aa9af7f73": {
|
12
|
+
"_type": "flow.page",
|
13
|
+
"next": {
|
14
|
+
"default": "df1ba645-f748-46d0-ad75-f34112653e37"
|
15
|
+
}
|
16
|
+
},
|
17
|
+
"df1ba645-f748-46d0-ad75-f34112653e37": {
|
18
|
+
"_type": "flow.page",
|
19
|
+
"next": {
|
20
|
+
"default": "4b8c6bf3-878a-4446-9198-48351b3e2185"
|
21
|
+
}
|
22
|
+
},
|
23
|
+
"4b8c6bf3-878a-4446-9198-48351b3e2185": {
|
24
|
+
"_type": "flow.page",
|
25
|
+
"next": {
|
26
|
+
"default": "54ccc6cd-60c0-4749-947b-a97af1bc0aa2"
|
27
|
+
}
|
28
|
+
},
|
29
|
+
"54ccc6cd-60c0-4749-947b-a97af1bc0aa2": {
|
30
|
+
"_type": "flow.page",
|
31
|
+
"next": {
|
32
|
+
"default": "b8335af2-6642-4e2f-8192-0dd12279eec7"
|
33
|
+
}
|
34
|
+
},
|
35
|
+
"b8335af2-6642-4e2f-8192-0dd12279eec7": {
|
36
|
+
"_type": "flow.page",
|
37
|
+
"next": {
|
38
|
+
"default": "68fbb180-9a2a-48f6-9da6-545e28b8d35a"
|
39
|
+
}
|
40
|
+
},
|
41
|
+
"68fbb180-9a2a-48f6-9da6-545e28b8d35a": {
|
42
|
+
"_type": "flow.page",
|
43
|
+
"next": {
|
44
|
+
"default": "7806cd64-0c05-450e-ba6f-2325c8b22d46"
|
45
|
+
}
|
46
|
+
},
|
47
|
+
"7806cd64-0c05-450e-ba6f-2325c8b22d46": {
|
48
|
+
"_type": "flow.page",
|
49
|
+
"next": {
|
50
|
+
"default": "0c022e95-0748-4dda-8ba5-12fd1d2f596b"
|
51
|
+
}
|
52
|
+
},
|
53
|
+
"0c022e95-0748-4dda-8ba5-12fd1d2f596b": {
|
54
|
+
"_type": "flow.page",
|
55
|
+
"next": {
|
56
|
+
"default": "e8708909-922e-4eaf-87a5-096f7a713fcb"
|
57
|
+
}
|
58
|
+
},
|
59
|
+
"e8708909-922e-4eaf-87a5-096f7a713fcb": {
|
60
|
+
"_type": "flow.page",
|
61
|
+
"next": {
|
62
|
+
"default": "80420693-d6f2-4fce-a860-777ca774a6f5"
|
63
|
+
}
|
64
|
+
},
|
65
|
+
"80420693-d6f2-4fce-a860-777ca774a6f5": {
|
66
|
+
"_type": "flow.page",
|
67
|
+
"next": {
|
68
|
+
"default": "2ef7d11e-0307-49e9-9fe2-345dc528dd66"
|
69
|
+
}
|
70
|
+
},
|
71
|
+
"2ef7d11e-0307-49e9-9fe2-345dc528dd66": {
|
72
|
+
"_type": "flow.page",
|
73
|
+
"next": {
|
74
|
+
"default": "e337070b-f636-49a3-a65c-f506675265f0"
|
75
|
+
}
|
76
|
+
},
|
77
|
+
"e337070b-f636-49a3-a65c-f506675265f0": {
|
78
|
+
"_type": "flow.page",
|
79
|
+
"next": {
|
80
|
+
"default": "778e364b-9a7f-4829-8eb2-510e08f156a3"
|
81
|
+
}
|
82
|
+
},
|
83
|
+
"778e364b-9a7f-4829-8eb2-510e08f156a3": {
|
84
|
+
"_type": "flow.page",
|
85
|
+
"next": {
|
86
|
+
"default": ""
|
87
|
+
}
|
88
|
+
}
|
89
|
+
},
|
4
90
|
"pages": [
|
5
91
|
{
|
6
92
|
"_id": "page.start",
|
@@ -9,21 +95,6 @@
|
|
9
95
|
"lede": "",
|
10
96
|
"_type": "page.start",
|
11
97
|
"_uuid": "cf6dc32f-502c-4215-8c27-1151a45735bb",
|
12
|
-
"steps": [
|
13
|
-
"page.name",
|
14
|
-
"page.email-address",
|
15
|
-
"page.parent-name",
|
16
|
-
"page.your-age",
|
17
|
-
"page.family-hobbies",
|
18
|
-
"page.do-you-like-star-wars",
|
19
|
-
"page.holiday",
|
20
|
-
"page.burgers",
|
21
|
-
"page.star-wars-knowledge",
|
22
|
-
"page.how-many-lights",
|
23
|
-
"page.dog-picture",
|
24
|
-
"page.check-answers",
|
25
|
-
"page.confirmation"
|
26
|
-
],
|
27
98
|
"heading": "Service name goes here",
|
28
99
|
"before_you_start": "###Before you start\r\nYou can also register by post.\r\n\r\nThe online service is also available in Welsh (Cymraeg).\r\n\r\nYou cannot register for this service if you’re in the UK illegally."
|
29
100
|
},
|