Skip to content

Commit 328851c

Browse files
committed
Align submission response fields
1 parent 4eb3844 commit 328851c

3 files changed

Lines changed: 20 additions & 15 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ submission = PreflightQA::Screenshots.create(
6060

6161
submission.uuid
6262
submission.status
63+
submission.code
6364
```
6465

6566
Find screenshots for a submission:

lib/preflight_qa/submission.rb

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
# frozen_string_literal: true
22

33
module PreflightQA
4-
Submission = Data.define(:uuid, :status, :subject, :raw) do
4+
Submission = Data.define(:uuid, :status, :code, :raw) do
55
def self.from_payload(payload)
6-
data = payload["data"] || payload
7-
source = data["submission"] || data["request"] || data["screenshot_request"] || data
8-
96
new(
10-
uuid: source["uuid"] || payload.dig("meta", "uuid"),
11-
status: source["status"],
12-
subject: source["subject"] || payload.dig("meta", "subject"),
7+
uuid: pick_value(payload, "uuid"),
8+
status: pick_value(payload, "status"),
9+
code: pick_value(payload, "code"),
1310
raw: payload
1411
)
1512
end
13+
14+
def self.pick_value(payload, key)
15+
payload.dig("meta", key) || submission_source(payload)[key]
16+
end
17+
18+
def self.submission_source(payload)
19+
data = payload["data"] || payload
20+
data["submission"] || data["request"] || data["screenshot_request"] || data
21+
end
1622
end
1723
end

spec/preflight_qa/screenshots_spec.rb

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@
44
let(:client) { instance_double(PreflightQA::Client) }
55
let(:submission_payload) do
66
{
7-
"data" => {
8-
"submission" => {
9-
"uuid" => "1b153496-f702-4f89-85b4-cd1a9516cbbe",
10-
"status" => "pending",
11-
"subject" => "My Test Email"
12-
}
7+
"meta" => {
8+
"uuid" => "1b153496-f702-4f89-85b4-cd1a9516cbbe",
9+
"status" => "accepted",
10+
"code" => 202
1311
}
1412
}
1513
end
@@ -62,8 +60,8 @@
6260
expect(result).to eq(
6361
PreflightQA::Submission.new(
6462
uuid: "1b153496-f702-4f89-85b4-cd1a9516cbbe",
65-
status: "pending",
66-
subject: "My Test Email",
63+
status: "accepted",
64+
code: 202,
6765
raw: submission_payload
6866
)
6967
)

0 commit comments

Comments
 (0)