Compare commits

..

No commits in common. "0e1b1eded3453e371356ad2e38854b5dec1fbf16" and "98eb14853cc0194a8b5cae425cc190a5c67864c2" have entirely different histories.

2 changed files with 8 additions and 21 deletions

View file

@ -84,7 +84,7 @@ async function handle(req, res) {
return reject( return reject(
res, res,
`Error loading data for outfit ${outfitId}: ${e.message}`, `Error loading data for outfit ${outfitId}: ${e.message}`,
500, 500
); );
} }
} else if (req.query.id) { } else if (req.query.id) {
@ -101,7 +101,7 @@ async function handle(req, res) {
return reject( return reject(
res, res,
`Error loading data for outfit ${outfitId}: ${e.message}`, `Error loading data for outfit ${outfitId}: ${e.message}`,
500, 500
); );
} }
@ -188,7 +188,7 @@ async function loadLayerUrlsForSavedOutfit(outfitId, size) {
if (errors && errors.length > 0) { if (errors && errors.length > 0) {
throw new Error( throw new Error(
`GraphQL Error: ${errors.map((e) => e.message).join(", ")}`, `GraphQL Error: ${errors.map((e) => e.message).join(", ")}`
); );
} }
@ -197,20 +197,17 @@ async function loadLayerUrlsForSavedOutfit(outfitId, size) {
} }
const { petAppearance, itemAppearances } = data.outfit; const { petAppearance, itemAppearances } = data.outfit;
const visibleLayers = getVisibleLayers(petAppearance, itemAppearances); const visibleLayers = getVisibleLayers(petAppearance, itemAppearances);
visibleLayers.sort((a, b) => a.depth - b.depth);
const imageUrls = [];
for (const layer of visibleLayers) { for (const layer of visibleLayers) {
if (!layer.imageUrl) { if (!layer.imageUrl) {
console.warn(`layer ${layer.id} has no imageUrl for size ${size}`); throw new Error(`layer ${layer.id} has no imageUrl for size ${size}`);
continue;
} }
imageUrls.push(layer.imageUrl);
} }
return imageUrls; return visibleLayers
.sort((a, b) => a.depth - b.depth)
.map((layer) => layer.imageUrl);
} }
async function loadUpdatedAtForSavedOutfit(outfitId) { async function loadUpdatedAtForSavedOutfit(outfitId) {
@ -233,7 +230,7 @@ function reject(res, message, status = 400) {
async function handleWithBeeline(req, res) { async function handleWithBeeline(req, res) {
beeline.withTrace( beeline.withTrace(
{ name: "api/outfitImage", operation_name: "api/outfitImage" }, { name: "api/outfitImage", operation_name: "api/outfitImage" },
() => handle(req, res), () => handle(req, res)
); );
} }

View file

@ -73,11 +73,7 @@ const typeDefs = gql`
} }
type PetAppearance @cacheControl(maxAge: ${oneHour}, staleWhileRevalidate: ${oneWeek}) { type PetAppearance @cacheControl(maxAge: ${oneHour}, staleWhileRevalidate: ${oneWeek}) {
"""
NOTE: In the case of an alt style, this won't match petStateId!
"""
id: ID! id: ID!
species: Species! species: Species!
color: Color! color: Color!
pose: Pose! pose: Pose!
@ -273,12 +269,6 @@ const resolvers = {
}, },
PetAppearance: { PetAppearance: {
id: ({ id, altStyleId }) => {
if (altStyleId != null) {
return `${id}-with-alt-style-${altStyleId}`;
}
return id;
},
color: async ({ id }, _, { petStateLoader, petTypeLoader }) => { color: async ({ id }, _, { petStateLoader, petTypeLoader }) => {
const petState = await petStateLoader.load(id); const petState = await petStateLoader.load(id);
const petType = await petTypeLoader.load(petState.petTypeId); const petType = await petTypeLoader.load(petState.petTypeId);