From 719ef68cfd56ce2dfb4f98b464b059b6f3aea556 Mon Sep 17 00:00:00 2001 From: Jamie Tanna Date: Tue, 16 Nov 2021 08:56:49 +0000 Subject: [PATCH] Log which handler has been used for context retrieval To better improve visibility of which context retrieval handler has been used, we can add a `name` to each handler that can be logged when retrieving. In the case of our fallback to OpenGraph, we can log a slightly more appropriate message. --- src/events/fetch-context/eventbrite.js | 5 +++++ src/events/fetch-context/granary.js | 6 +++++- src/events/fetch-context/index.js | 3 ++- src/events/fetch-context/meetup.js | 5 +++++ src/events/fetch-context/open-graph.js | 6 +++++- 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/events/fetch-context/eventbrite.js b/src/events/fetch-context/eventbrite.js index 4227fdf..52b922b 100644 --- a/src/events/fetch-context/eventbrite.js +++ b/src/events/fetch-context/eventbrite.js @@ -1,6 +1,10 @@ const fetch = require('node-fetch') const logger = require('@architect/shared/logger') +function name () { + return 'Eventbrite' +} + function isEventbriteUrl (url) { return ((url.indexOf('https://eventbrite.com') > -1) || (url.indexOf('https://www.eventbrite.com') > -1) || @@ -29,6 +33,7 @@ async function fetchContext (url) { } module.exports = { + name, isEventbriteUrl, fetchContext } diff --git a/src/events/fetch-context/granary.js b/src/events/fetch-context/granary.js index 3b9a92b..a1f2257 100644 --- a/src/events/fetch-context/granary.js +++ b/src/events/fetch-context/granary.js @@ -1,6 +1,10 @@ const fetch = require('node-fetch') const logger = require('@architect/shared/logger') +function name () { + return 'Granary' +} + function getGranaryUrl (url) { const granaryBaseUrl = 'https://granary.io/' const safeUrl = encodeURIComponent(url) @@ -26,4 +30,4 @@ async function fetchContext (url) { return mf2.items[0].properties } -module.exports = { fetchContext } +module.exports = { name, fetchContext } diff --git a/src/events/fetch-context/index.js b/src/events/fetch-context/index.js index 7f918a4..9933b3e 100644 --- a/src/events/fetch-context/index.js +++ b/src/events/fetch-context/index.js @@ -19,9 +19,11 @@ async function getContext (handler, url) { // if our fetching fails, fallback to OpenGraph const properties = await handler.fetchContext(url) if (properties) { + logger.info(`Context fetched ${url} using ${handler.name()}`, JSON.stringify(properties)) return properties } + logger.info(`Context fetching ${url} using fallback ${openGraph.name()}`, JSON.stringify(properties)) return await openGraph.fetchContext(url) } @@ -34,5 +36,4 @@ exports.handler = async function subscribe (event) { url, properties }) - logger.info(`Context fetched ${url}`, JSON.stringify(properties)) } diff --git a/src/events/fetch-context/meetup.js b/src/events/fetch-context/meetup.js index b914fe3..4e7dcf9 100644 --- a/src/events/fetch-context/meetup.js +++ b/src/events/fetch-context/meetup.js @@ -1,6 +1,10 @@ const fetch = require('node-fetch') const logger = require('@architect/shared/logger') +function name () { + return 'Meetup' +} + function isMeetupUrl (url) { return ((url.indexOf('https://meetup.com') > -1) || (url.indexOf('https://www.meetup.com') > -1)) @@ -27,6 +31,7 @@ async function fetchContext (url) { } module.exports = { + name, isMeetupUrl, fetchContext } diff --git a/src/events/fetch-context/open-graph.js b/src/events/fetch-context/open-graph.js index 011541f..e72fd82 100644 --- a/src/events/fetch-context/open-graph.js +++ b/src/events/fetch-context/open-graph.js @@ -1,6 +1,10 @@ const ogs = require('open-graph-scraper') const logger = require('@architect/shared/logger') +function name () { + return 'OpenGraph' +} + function setName (result, properties) { if (result.ogTitle) { properties.name = [result.ogTitle] @@ -61,4 +65,4 @@ async function fetchContext (url) { return properties } -module.exports = { fetchContext } +module.exports = { name, fetchContext }