Skip to content

Commit 9555d5b

Browse files
committed
Add language to JSON
Add a language property to the JSON submission. We add language to our JSON schema or at least the version we keep in this repository for testing. JSON
1 parent 559f1e6 commit 9555d5b

File tree

5 files changed

+12
-2
lines changed

5 files changed

+12
-2
lines changed

app/lib/json_submission_generator.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
class JsonSubmissionGenerator
2-
def self.generate_submission(form:, all_steps:, submission_reference:, timestamp:, is_s3_submission:)
2+
def self.generate_submission(form:, all_steps:, submission_reference:, timestamp:, is_s3_submission:, submission_locale:)
33
submission = {
44
"$schema" => "#{Settings.forms_product_page.base_url}/json-submissions/v1/schema",
55
form_name: form.name,
66
submission_reference:,
77
submitted_at: timestamp.getutc.iso8601(3),
8+
language: submission_locale,
89
answers: all_steps.flat_map { |step| step.show_answer_in_json(is_s3_submission) },
910
}
1011
JSON.pretty_generate(submission)

app/services/aws_ses_submission_service.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def generate_json_submission
6363
submission_reference: @submission.reference,
6464
timestamp: @submission.submission_time,
6565
is_s3_submission: false,
66+
submission_locale: @submission.submission_locale,
6667
)
6768
end
6869

app/services/s3_submission_service.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ def generate_json_submission
5757
submission_reference: @submission_reference,
5858
timestamp: @timestamp,
5959
is_s3_submission: true,
60+
submission_locale: @submission_locale,
6061
)
6162
end
6263

spec/fixtures/json_submission_schema_v1.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
"type": "string",
1717
"format": "date-time"
1818
},
19+
"language": {
20+
"enum": ["en", "cy"],
21+
"description": "The language the form was submitted. If there is a Welsh version of the form then this will be 'cy', otherwise 'en'."
22+
},
1923
"answers": {
2024
"description": "An array containing all the answers provided.",
2125
"type": "array",

spec/lib/json_submission_generator_spec.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
let(:selection_step) { build :step, page: build(:page, :with_selections_settings), question: selection_question }
1515
let(:all_steps) { [text_step, name_step, file_step, address_step, selection_step] }
1616
let(:submission_reference) { Faker::Alphanumeric.alphanumeric(number: 8).upcase }
17+
let(:submission_locale) { :en }
1718
let(:timestamp) do
1819
Time.use_zone("London") { Time.zone.local(2022, 9, 14, 8, 0, 0) }
1920
end
2021

2122
describe ".generate_submission" do
22-
subject(:json_submission) { described_class.generate_submission(form:, all_steps:, submission_reference:, timestamp:, is_s3_submission:) }
23+
subject(:json_submission) { described_class.generate_submission(form:, all_steps:, submission_reference:, timestamp:, is_s3_submission:, submission_locale:) }
2324

2425
let(:parsed_json) { JSON.parse(json_submission) }
2526

@@ -56,6 +57,7 @@
5657
"form_name" => form.name,
5758
"submission_reference" => submission_reference,
5859
"submitted_at" => "2022-09-14T07:00:00.000Z",
60+
"language" => "en",
5961
"answers" => [
6062
{
6163
"question_id" => text_step.page.id,
@@ -108,6 +110,7 @@
108110
"form_name" => form.name,
109111
"submission_reference" => submission_reference,
110112
"submitted_at" => "2022-09-14T07:00:00.000Z",
113+
"language" => "en",
111114
"answers" => [
112115
{
113116
"question_id" => repeatable_step.page.id,

0 commit comments

Comments
 (0)