feat : add elemental ickn
This commit is contained in:
@@ -104,6 +104,21 @@ export async function getPublicGuide(slug: string) {
|
||||
getDb().select().from(teamCompositions).where(eq(teamCompositions.guideId, row.guide.id)).orderBy(asc(teamCompositions.sortOrder)),
|
||||
]);
|
||||
|
||||
const elementIconUrls = Object.fromEntries(
|
||||
(await getDb()
|
||||
.select({
|
||||
element: catalogCharacters.element,
|
||||
elementIconKey: catalogCharacters.elementIconKey,
|
||||
})
|
||||
.from(catalogCharacters)
|
||||
.where(isNotNull(catalogCharacters.elementIconKey)))
|
||||
.flatMap((character) =>
|
||||
character.element && character.elementIconKey
|
||||
? [[character.element, publicMediaUrl(character.elementIconKey)] as const]
|
||||
: [],
|
||||
),
|
||||
);
|
||||
|
||||
const weaponRows = weaponConditionsRows.length ? await getDb().select({ recommendation: weaponRecommendations, weapon: catalogWeapons }).from(weaponRecommendations).innerJoin(catalogWeapons, eq(catalogWeapons.key, weaponRecommendations.weaponKey)).where(inArray(weaponRecommendations.conditionId, weaponConditionsRows.map((condition) => condition.id))).orderBy(asc(weaponRecommendations.sortOrder)) : [];
|
||||
|
||||
const constellations = constellationGroups.length ? await getDb().select().from(constellationRecommendations).where(inArray(constellationRecommendations.conditionId, constellationGroups.map((group) => group.id))).orderBy(asc(constellationRecommendations.level)) : [];
|
||||
@@ -124,6 +139,7 @@ export async function getPublicGuide(slug: string) {
|
||||
...row.guide,
|
||||
coverUrl: publicMediaUrl(row.cover.objectKey),
|
||||
character: catalogCharacterWithUrls(row.character),
|
||||
elementIconUrls,
|
||||
sections,
|
||||
weapons: weaponRows.map(({ recommendation, weapon }) => ({ ...recommendation, weapon: { ...weapon, imageUrl: publicMediaUrl(weapon.imageKey) } })),
|
||||
weaponGroups: weaponConditionsRows.map((condition) => ({ ...condition, rows: weaponRows.filter(({ recommendation }) => recommendation.conditionId === condition.id).map(({ recommendation, weapon }) => ({ ...recommendation, weapon: { ...weapon, imageUrl: publicMediaUrl(weapon.imageKey) } })) })),
|
||||
|
||||
Reference in New Issue
Block a user