Skip to content

Commit 298460c

Browse files
api changes
1 parent a161268 commit 298460c

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

app/models/image.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class Image < ApplicationRecord
1010

1111
accepts_nested_attributes_for :image_data
1212

13-
delegate :filename, :content_type, :width, :height, :bitmap?, :svg?, :can_be_cropped?, :requires_crop?, :image_kind, to: :image_data
13+
delegate :filename, :content_type, :width, :height, :bitmap?, :svg?, :can_be_cropped?, :requires_crop?, :image_kind, :image_kind_config, to: :image_data
1414

1515
default_scope -> { order(:id) }
1616

@@ -51,6 +51,7 @@ def publishing_api_details
5151
type: usage,
5252
url:,
5353
caption:,
54+
sources: image_data.image_kind_config.versions.reduce({}) { |sources, version| sources.merge({ version.name.to_s => url(version.name) }) },
5455
content_type:,
5556
}
5657
end

test/unit/app/models/image_test.rb

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,43 @@ class ImageTest < ActiveSupport::TestCase
144144
assert_equal "must be permitted", image.errors[:usage][0]
145145
end
146146

147-
test "#publishing_api_details returns a hash of image details" do
147+
test "#publishing_api_details returns a hash of image details an SVG" do
148148
image = create(:image, :svg, usage: "header", caption: "An SVG image")
149149

150150
expected_hash = {
151151
type: "header",
152152
url: image.url,
153153
caption: "An SVG image",
154154
content_type: "image/svg+xml",
155+
sources: {
156+
"s960" => nil,
157+
"s712" => nil,
158+
"s630" => nil,
159+
"s465" => nil,
160+
"s300" => nil,
161+
"s216" => nil,
162+
},
163+
}
164+
165+
assert_equal expected_hash, image.publishing_api_details
166+
end
167+
168+
test "#publishing_api_details returns a hash of image details for a bitmap" do
169+
image = create(:image, usage: "header", caption: "A bitmap image")
170+
171+
expected_hash = {
172+
type: "header",
173+
url: image.url,
174+
caption: "A bitmap image",
175+
content_type: "image/jpeg",
176+
sources: {
177+
"s960" => image.url("s960"),
178+
"s712" => image.url("s712"),
179+
"s630" => image.url("s630"),
180+
"s465" => image.url("s465"),
181+
"s300" => image.url("s300"),
182+
"s216" => image.url("s216"),
183+
},
155184
}
156185

157186
assert_equal expected_hash, image.publishing_api_details

0 commit comments

Comments
 (0)