From 83ee382844eb8cfb620a76dfa62b89ef7da8b339 Mon Sep 17 00:00:00 2001 From: Michael Neeley Date: Wed, 13 Nov 2019 09:20:28 -0500 Subject: [PATCH 1/2] Expands Short Links --- .../src/data/content-items/data-source.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 30563159..da43fb73 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 @@ -278,9 +278,14 @@ export default class ContentItem extends oldContentItem.dataSource { }; getBySlug = async (slug) => { + const { url } = await this.request('PageShortLinks') + .filter(`Token eq '${slug}'`) + .first(); + const path = url ? url.split('/')[url.split('/').length - 1] : ''; const contentItemSlug = await this.request('ContentChannelItemSlugs') - .filter(`Slug eq '${slug}'`) + .filter(`Slug eq '${path !== '' ? path : null || slug}'`) .first(); + if (!contentItemSlug) throw new Error('Slug does not exist.'); return this.getFromId(`${contentItemSlug.contentChannelItemId}`); From 2f158501ce3e3e716e2994079b0b502714340a98 Mon Sep 17 00:00:00 2001 From: Michael Neeley Date: Wed, 13 Nov 2019 09:27:05 -0500 Subject: [PATCH 2/2] fixed bug --- .../src/data/content-items/data-source.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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 da43fb73..c444ecf8 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 @@ -278,10 +278,15 @@ export default class ContentItem extends oldContentItem.dataSource { }; getBySlug = async (slug) => { - const { url } = await this.request('PageShortLinks') + // try to expand short link first + const link = await this.request('PageShortLinks') .filter(`Token eq '${slug}'`) .first(); - const path = url ? url.split('/')[url.split('/').length - 1] : ''; + const path = link + ? link.url.split('/')[link.url.split('/').length - 1] + : ''; + + // get content item const contentItemSlug = await this.request('ContentChannelItemSlugs') .filter(`Slug eq '${path !== '' ? path : null || slug}'`) .first();