diff --git a/packages/apollos-church-api/src/data/content-items/data-source.js b/packages/apollos-church-api/src/data/content-items/data-source.js index 94a47774..fa44de43 100644 --- a/packages/apollos-church-api/src/data/content-items/data-source.js +++ b/packages/apollos-church-api/src/data/content-items/data-source.js @@ -330,8 +330,17 @@ export default class ContentItem extends oldContentItem.dataSource { }; getBySlug = async (slug) => { + // try to expand short link first + const link = await this.request('PageShortLinks') + .filter(`Token eq '${slug}'`) + .first(); + const path = link + ? link.url.split('/')[link.url.split('/').length - 1] + : ''; + + // get content item const contentItemSlug = await this.request('ContentChannelItemSlugs') - .filter(`Slug eq '${slug}'`) + .filter(`Slug eq '${path !== '' ? path : null || slug}'`) .first(); if (!contentItemSlug) throw new Error(`Slug "${slug}" does not exist.`);