diff --git a/features/cocktail/utils.js b/features/cocktail/utils.js index add21e2..daac817 100644 --- a/features/cocktail/utils.js +++ b/features/cocktail/utils.js @@ -1,4 +1,4 @@ -const { buildImages, buildOgImage } = require("../../utils/image"); +const { buildImages, buildOgImage, buildGoodsImageInFeed, buildGlasswaresImageInFeed, buildToolsImageInFeed } = require("../../utils/image"); const Database = require('../../database/newclient'); const { getCocktailBySlug } = require("../../database/cocktail"); @@ -56,7 +56,7 @@ async function getFullCocktailBySlug(slug) { name: good.name, amount: good.amount, unit: good.unit, - images: buildImages(good.id, 'ITEM') + images: buildGoodsImageInFeed(good.slug) })); const glassware = cocktail.glassware.map(glass => ({ @@ -64,7 +64,7 @@ async function getFullCocktailBySlug(slug) { slug: glass.slug, url: `glassware/${glass.slug}`, name: glass.name, - images: buildImages(glass.id, 'ITEM') + images: buildGlasswaresImageInFeed(glass.slug) })); const tools = cocktail.tools.map(tool => ({ @@ -72,7 +72,7 @@ async function getFullCocktailBySlug(slug) { slug: tool.slug, url: `tools/${tool.slug}`, name: tool.name, - images: buildImages(tool.id, 'ITEM') + images: buildToolsImageInFeed(tool.slug) })); const taste = cocktail.tastes.map(taste => ({ diff --git a/utils/image.js b/utils/image.js index 03c7b04..65f9f8e 100644 --- a/utils/image.js +++ b/utils/image.js @@ -111,6 +111,51 @@ const buildGlasswareDetailsImage = (slug) => { ); } +const buildGoodsImageInFeed = (slug) => { + const sizes = [ + { responseSize: "414px", imageSize: "142" }, + { responseSize: "0", imageSize: "100" } + ]; + + return formats.flatMap(format => + sizes.map(size => ({ + srcset: `${imageUrlStart}/v2/goods/${slug}/${size.imageSize}.${format}`, + media: `screen and (min-width: ${size.responseSize})`, + type: `image/${format}` + })) + ); +} + +const buildToolsImageInFeed = (slug) => { + const sizes = [ + { responseSize: "414px", imageSize: "142" }, + { responseSize: "0", imageSize: "100" } + ]; + + return formats.flatMap(format => + sizes.map(size => ({ + srcset: `${imageUrlStart}/v2/tools/${slug}/${size.imageSize}.${format}`, + media: `screen and (min-width: ${size.responseSize})`, + type: `image/${format}` + })) + ); +} + +const buildGlasswaresImageInFeed = (slug) => { + const sizes = [ + { responseSize: "414px", imageSize: "142" }, + { responseSize: "0", imageSize: "100" } + ]; + + return formats.flatMap(format => + sizes.map(size => ({ + srcset: `${imageUrlStart}/v2/glasswares/${slug}/${size.imageSize}.${format}`, + media: `screen and (min-width: ${size.responseSize})`, + type: `image/${format}` + })) + ); +} + module.exports = { buildImages, buildOgImage, @@ -119,4 +164,7 @@ module.exports = { buildGoodDetailsImage, buildToolDetailsImage, buildGlasswareDetailsImage, + buildGoodsImageInFeed, + buildToolsImageInFeed, + buildGlasswaresImageInFeed, }