From eacec6e8243f44ed1d35e78f4929a24d356a2dac Mon Sep 17 00:00:00 2001 From: Jonas Braathen Date: Fri, 22 Feb 2019 01:44:22 +0100 Subject: [PATCH] Fetch event types, link them with event nodes --- gatsby-config.js | 1 + src/wordpress.js | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/gatsby-config.js b/gatsby-config.js index c033b80..d893702 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -24,6 +24,7 @@ module.exports = { includedRoutes: [ "**/*/*/categories", "**/*/*/events", + "**/*/*/event_type", "**/*/*/posts", "**/*/*/pages", "**/*/*/media", diff --git a/src/wordpress.js b/src/wordpress.js index f46d701..ee446ce 100644 --- a/src/wordpress.js +++ b/src/wordpress.js @@ -4,6 +4,7 @@ const htmlEntities = new Entities(); const neufNormalizer = ({ entities }) => { entities = decodeTitles(entities) + entities = mapEventsToEventTypes(entities) return entities } @@ -16,4 +17,26 @@ const decodeTitles = entities => { } return e }) -} \ No newline at end of file +} + +const mapEventsToEventTypes = entities => { + const eventTaxonomies = [`wordpress__wp_event_type`, ] + const eventTypes = entities.filter(e => eventTaxonomies.includes(e.__type)) + + return entities.map(e => { + // Replace event types with links to their nodes. + let eventHasType = e.event_type && Array.isArray(e.event_type) && e.event_type.length + if (eventTypes.length && eventHasType) { + e.event_type___NODE = e.event_type.map( + t => + eventTypes.find( + tObj => + (Number.isInteger(t) ? t : t.wordpress_id) === tObj.wordpress_id + ).id + ) + delete e.event_type + } + + return e + }) +}