Remove SwfAsset#html5_*_url in favor of SwfAsset#urls

The alt styles controller is the one place we use this right now, but
I'm planning to generalize this to loading appearances during item
search, too!

I also add more `only` fields to the alt styles `as_json` call, because
idk it feels like good practice to both 1) say what we need in this
endpoint, rather than rely on default behavior upstream, and 2) to
avoid leaking fields we didn't realize were on there. (And also to
preserve bandwidth, too!)
This commit is contained in:
Emi Matchu 2024-02-24 16:25:55 -08:00
parent cd095eefcb
commit c5cd1f2f3d
3 changed files with 9 additions and 15 deletions

View file

@ -16,10 +16,13 @@ class AltStylesController < ApplicationController
format.html { render } format.html { render }
format.json { format.json {
render json: @alt_styles.includes(swf_assets: [:zone]).as_json( render json: @alt_styles.includes(swf_assets: [:zone]).as_json(
only: [:id, :species_id, :color_id, :body_id, :series_name,
:adjective_name, :thumbnail_url],
include: { include: {
swf_assets: { swf_assets: {
only: [:id, :body_id],
include: [:zone], include: [:zone],
methods: [:html5_image_url, :html5_svg_url], methods: [:urls],
} }
}, },
methods: [:series_name, :adjective_name, :thumbnail_url], methods: [:series_name, :adjective_name, :thumbnail_url],

View file

@ -72,11 +72,9 @@ function normalizeSwfAssetToLayer(swfAssetData) {
bodyId: swfAssetData.body_id, bodyId: swfAssetData.body_id,
knownGlitches: [], // TODO knownGlitches: [], // TODO
// HACK: We're just simplifying this adapter, but it would be better to svgUrl: swfAssetData.urls.svg,
// actually check what file formats the manifest says! canvasMovieLibraryUrl: swfAssetData.urls.canvas_library,
svgUrl: swfAssetData.html5_svg_url, imageUrl: swfAssetData.urls.png,
canvasMovieLibraryUrl: null, swfUrl: swfAssetData.urls.swf,
imageUrl: swfAssetData.html5_image_url,
swfUrl: swfAssetData.url,
}; };
} }

View file

@ -45,6 +45,7 @@ class SwfAsset < ApplicationRecord
swf: url, swf: url,
png: image_url, png: image_url,
svg: manifest_asset_urls[:svg], svg: manifest_asset_urls[:svg],
canvas_library: manifest_asset_urls[:js],
manifest: manifest_url, manifest: manifest_url,
} }
end end
@ -147,14 +148,6 @@ class SwfAsset < ApplicationRecord
).to_s ).to_s
end end
def html5_image_url
manifest_asset_urls[:png]
end
def html5_svg_url
manifest_asset_urls[:svg]
end
def known_glitches def known_glitches
self[:known_glitches].split(',') self[:known_glitches].split(',')
end end