Added logo path to entity API.

This commit is contained in:
DebaucheryLibrarian 2020-10-20 15:28:58 +02:00
parent 60eb599416
commit ecdd6d8fb0
1 changed files with 9 additions and 2 deletions

View File

@ -13,6 +13,11 @@ function curateEntity(entity, includeParameters = false) {
return null; return null;
} }
const logo = (entity.has_logo
&& (((entity.independent || entity.type === 'network') && `${entity.slug}/network.png`)
|| (entity.parent && `${entity.parent.slug}/${entity.slug}.png`)))
|| null;
const curatedEntity = entity.id ? { const curatedEntity = entity.id ? {
id: entity.id, id: entity.id,
name: entity.name, name: entity.name,
@ -20,7 +25,9 @@ function curateEntity(entity, includeParameters = false) {
description: entity.description, description: entity.description,
slug: entity.slug, slug: entity.slug,
type: entity.type, type: entity.type,
independent: !!entity.independent,
aliases: entity.alias, aliases: entity.alias,
logo,
parent: curateEntity(entity.parent, includeParameters), parent: curateEntity(entity.parent, includeParameters),
} : {}; } : {};
@ -176,7 +183,7 @@ async function fetchEntities(type, limit) {
async function searchEntities(query, type, limit) { async function searchEntities(query, type, limit) {
const entities = await knex const entities = await knex
.select(knex.raw(` .select(knex.raw(`
entities.id, entities.name, entities.slug, entities.type, entities.url, entities.description, entities.alias, entities.id, entities.name, entities.slug, entities.type, entities.url, entities.description, entities.alias, entities.has_logo,
COALESCE(json_agg(tags) FILTER (WHERE tags.id IS NOT NULL), '[]') as tags, COALESCE(json_agg(tags) FILTER (WHERE tags.id IS NOT NULL), '[]') as tags,
row_to_json(parents) as parent row_to_json(parents) as parent
`)) `))
@ -189,7 +196,7 @@ async function searchEntities(query, type, limit) {
.leftJoin('entities as parents', 'parents.id', 'entities.parent_id') .leftJoin('entities as parents', 'parents.id', 'entities.parent_id')
.leftJoin('entities_tags', 'entities_tags.entity_id', 'entities.id') .leftJoin('entities_tags', 'entities_tags.entity_id', 'entities.id')
.leftJoin('tags', 'tags.id', 'entities_tags.tag_id') .leftJoin('tags', 'tags.id', 'entities_tags.tag_id')
.groupBy('entities.id', 'entities.name', 'entities.slug', 'entities.type', 'entities.url', 'entities.description', 'entities.alias', 'parents.id') .groupBy('entities.id', 'entities.name', 'entities.slug', 'entities.type', 'entities.url', 'entities.description', 'entities.alias', 'entities.has_logo', 'parents.id')
.limit(limit || 100); .limit(limit || 100);
return curateEntities(entities); return curateEntities(entities);