From d03f0d054eaefd9593bd504d16f967d91472faea Mon Sep 17 00:00:00 2001
From: sjoerdbeentjes <11621275+sjoerdbeentjes@users.noreply.github.com>
Date: Tue, 30 Jul 2024 10:26:14 +0200
Subject: [PATCH 1/9] Add sync viewer layer background API handler
---
src/api/sync-viewer-layer-background.js | 12 ++++++++++++
1 file changed, 12 insertions(+)
create mode 100644 src/api/sync-viewer-layer-background.js
diff --git a/src/api/sync-viewer-layer-background.js b/src/api/sync-viewer-layer-background.js
new file mode 100644
index 0000000..db8ec9a
--- /dev/null
+++ b/src/api/sync-viewer-layer-background.js
@@ -0,0 +1,12 @@
+import { withServerDefaults } from '../lib/with-server-defaults'
+
+export const handler = withServerDefaults(async (event, _) => {
+ /* Protect this endpoint by using a token */
+ if (process.env.SYNC_LAYER_API_TOKEN !== event.headers['x-api-key']) {
+ return {
+ statusCode: 401,
+ }
+ }
+
+ console.log('Syncing layer', JSON.parse(event.body, null, 2))
+})
From 52656a150fed11e3262cac0eaa489e7ab343ccac Mon Sep 17 00:00:00 2001
From: sjoerdbeentjes <11621275+sjoerdbeentjes@users.noreply.github.com>
Date: Tue, 30 Jul 2024 11:34:31 +0200
Subject: [PATCH 2/9] Add sync and fetch viewer layer functionalities
---
src/api/sync-viewer-layer-background.js | 196 +++++++++++++++++++++++-
src/api/viewer-layer.js | 49 ++++++
src/lib/fetch-viewer-layer-xml.js | 184 ++++++++++++++++++++++
3 files changed, 428 insertions(+), 1 deletion(-)
create mode 100644 src/api/viewer-layer.js
create mode 100644 src/lib/fetch-viewer-layer-xml.js
diff --git a/src/api/sync-viewer-layer-background.js b/src/api/sync-viewer-layer-background.js
index db8ec9a..9d8308f 100644
--- a/src/api/sync-viewer-layer-background.js
+++ b/src/api/sync-viewer-layer-background.js
@@ -1,4 +1,53 @@
+import { Geonetwork } from '../lib/geonetwork'
+import { datocmsRequest } from '../lib/datocms'
+import { addThumbnailsToRecord } from '../lib/add-thumbnails-to-record'
import { withServerDefaults } from '../lib/with-server-defaults'
+import { buildMenuTree } from '../lib/build-menu-tree'
+import { findGeonetworkInstances } from '../lib/find-geonetwork-instances'
+import { fetchViewerLayerXML } from '../lib/fetch-viewer-layer-xml'
+import { formatMenusRecursive } from '../lib/format-menu'
+import Mailjet from 'node-mailjet'
+
+const mailjet = new Mailjet({
+ apiKey: process.env.MAILJET_API_TOKEN,
+ apiSecret: process.env.MAILJET_API_SECRET,
+})
+
+const viewersWithLayersQuery = /* graphql */ `
+query viewersWithLayers ($first: IntType, $skip: IntType = 0, $locale: SiteLocale = nl) {
+ menus: allMenus(first: $first, skip: $skip, locale: $locale) {
+ id
+ geonetwork {
+ baseUrl
+ username
+ password
+ }
+ errorNotificationContacts {
+ email
+ }
+ children: viewerLayers {
+ id
+ }
+ parent {
+ id
+ }
+ }
+ _allMenusMeta {
+ count
+ }
+}`
+
+const viewerLayerByIdQuery = /* graphql */ `
+query LayerById($id: ItemId) {
+ viewerLayer(filter: {id: {eq: $id}}) {
+ layer {
+ thumbnails {
+ filename
+ url
+ }
+ }
+ }
+}`
export const handler = withServerDefaults(async (event, _) => {
/* Protect this endpoint by using a token */
@@ -8,5 +57,150 @@ export const handler = withServerDefaults(async (event, _) => {
}
}
- console.log('Syncing layer', JSON.parse(event.body, null, 2))
+ const layerData = JSON.parse(event.body)
+
+ const layerId = layerData.entity.id
+
+ const { menus } = await datocmsRequest({
+ query: viewersWithLayersQuery,
+ })
+ const formattedMenus = formatMenusRecursive(menus)
+ const menuTree = buildMenuTree(formattedMenus)
+
+ try {
+ await syncViewerLayers(menuTree, layerData.event_type, layerId)
+ }
+ catch (e) {
+ console.log('The following error occured', e.message)
+
+ // for (let email of findEmailContactsForLayerId(menuTree, layerId)) {
+ // console.log('Sending email to', email)
+
+ // await mailjet.post('send', { version: 'v3.1' }).request({
+ // Messages: [
+ // {
+ // From: {
+ // Email: process.env.MAILJET_FROM_EMAIL,
+ // },
+ // To: [
+ // {
+ // Email: email,
+ // },
+ // ],
+ // Subject: `Fout bij opslaan metadata voor laag ${layerId}`,
+ // HTMLPart: e.message,
+ // },
+ // ],
+ // })
+ // }
+ }
+
})
+
+async function syncViewerLayers(menuTree, eventType, viewerLayerId) {
+ const geonetworkInstances = findGeonetworkInstances(menuTree, viewerLayerId)
+
+ const geonetworkInstancesArray = Array.from(geonetworkInstances)
+
+ const xml = await fetchViewerLayerXML({ id: layerId })
+
+ // Can occur when no update needs to be done (because there is no factsheet or inspireMetadata)
+ if (xml === null) {
+ return
+ }
+
+ const requestsPromises = geonetworkInstancesArray.map(
+ async ([_, geonetworkInstance]) => {
+ const { baseUrl, username, password } = geonetworkInstance
+
+ const geonetwork = new Geonetwork(
+ baseUrl + 'geonetwork/srv/api',
+ username,
+ password
+ )
+
+ switch (eventType) {
+ case 'create': {
+ await geonetwork.recordsRequest({
+ url: '?publishToAll=true',
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: xml,
+ })
+
+ break
+ }
+
+ case 'publish': {
+ await geonetwork.recordsRequest({
+ url: '?uuidProcessing=OVERWRITE&publishToAll=true',
+ method: 'PUT',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: xml,
+ })
+
+ break
+ }
+ }
+
+ switch (eventType) {
+ case 'create':
+ case 'publish':
+ const {
+ layer: { thumbnails },
+ } = await datocmsRequest({
+ query: viewerLayerByIdQuery,
+ variables: { id: layerId },
+ })
+
+ await addThumbnailsToRecord(thumbnails, layerId, geonetwork)
+ }
+ }
+ )
+
+ const results = await Promise.allSettled(requestsPromises)
+
+ const errors = results.filter(result => result.status === 'rejected')
+
+ if (errors.length) {
+ const errorMessage = `
${errors.map(error => `- ${error.reason}
`).join('')}
`
+ throw new Error(errorMessage)
+ }
+
+}
+
+function findEmailContactsForLayerId(menuTree, layerId) {
+ const contacts = new Set()
+
+ menuTree.forEach((viewer) => {
+
+ const findInMenu = (menu) => {
+ const { children } = menu
+
+ if (children) {
+ children.forEach((child) => {
+
+ if (child.layer.id === layerId) {
+ const { errorNotificationContacts } = viewer
+
+ if (errorNotificationContacts.length) {
+ for (let { email } of errorNotificationContacts) {
+ contacts.add(email)
+ }
+ }
+ }
+
+ findInMenu(child)
+ })
+ }
+ }
+
+ findInMenu(viewer)
+ })
+
+ return contacts
+}
diff --git a/src/api/viewer-layer.js b/src/api/viewer-layer.js
new file mode 100644
index 0000000..cc43139
--- /dev/null
+++ b/src/api/viewer-layer.js
@@ -0,0 +1,49 @@
+import convert from 'xml-js'
+import { withServerDefaults } from '../lib/with-server-defaults'
+import { contentTypes } from '../lib/constants'
+import { fetchViewerLayerXML } from '../lib/fetch-viewer-layer-xml'
+
+export const handler = withServerDefaults(async (event, _) => {
+ const { id, format } = event.queryStringParameters
+
+ if (!id) {
+ return {
+ statusCode: 404,
+ body: JSON.stringify({ error: 'id query parameter is required' }),
+ }
+ }
+
+ if (!format) {
+ return {
+ statusCode: 404,
+ body: JSON.stringify({ error: 'format query parameter is required' }),
+ }
+ }
+
+ if (!['json', 'xml'].includes(format)) {
+ return {
+ statusCode: 400,
+ body: JSON.stringify({
+ error:
+ 'format query parameter must be one of the following values: json|xml',
+ }),
+ }
+ }
+
+ let formatted = await fetchViewerLayerXML({
+ id,
+ })
+
+ if (format === 'json') {
+ formatted = convert.xml2json(formatted, {
+ compact: true,
+ })
+ }
+
+ return {
+ body: formatted,
+ headers: {
+ 'content-type': contentTypes[format],
+ },
+ }
+})
diff --git a/src/lib/fetch-viewer-layer-xml.js b/src/lib/fetch-viewer-layer-xml.js
new file mode 100644
index 0000000..346ef70
--- /dev/null
+++ b/src/lib/fetch-viewer-layer-xml.js
@@ -0,0 +1,184 @@
+import { datocmsRequest } from './datocms'
+import https from 'https'
+import { format as formatInspireMetadataXml } from './format-inspire-metadata-xml'
+import { format as formatFactsheetXml } from './format-factsheet-xml'
+import fetch from 'node-fetch'
+import convert from 'xml-js'
+
+const query = /* graphql */ `
+query LayerById($id: ItemId) {
+ viewerLayer(filter: {id: {eq: $id}}) {
+ id
+ useFactsheetAsMetadata
+ inspireMetadata {
+ _updatedAt
+ citationTitle
+ citationDateDate
+ citationDateDatetype
+ electronicmailaddress
+ role
+ organisationname
+ abstract
+ identificationinfoStatus
+ topiccategories {
+ topicCategoryItem
+ }
+ descriptivekeywordsKeywords {
+ title
+ }
+ resourceconstraintsAccessconstraints
+ resourceconstraintsUseconstraints
+ mdSpatialrepresentationtypecode
+ thesaurusname
+ thesaurusdatum
+ thesaurusdatumType
+ resourceconstraintsUseconstraints
+ hierarchylevel
+ lineageStatement
+ metadatastandardname
+ metadatastandardversion
+ links {
+ protocol
+ url
+ name
+ description
+ }
+ }
+ factsheets {
+ _updatedAt
+ id
+ title
+ titelNaamMeetMonitorprogramma
+ urlOriginalFile
+ naamAansturendeOrganisatie
+ datumVoltooiing
+ datumVanDeBron
+ datumtypeVanDeBron
+ samenvatting
+ identificationinfoStatus
+ doelWaarvoorDataWordenVerzameld
+ onderwerp {
+ topicCategoryItem
+ }
+ naamUitvoerendeDienstOrganisatie
+ rolContactpersoon
+ geografischGebied
+ toepassingsschaal
+ gebruiksbeperkingen
+ overigeBeperkingenInGebruik
+ themas {
+ title
+ }
+ temporeleDekking
+ hierarchieniveau
+ volledigheid
+ nauwkeurigheid
+ algemeneBeschrijvingVanHerkomst
+ inwinningsmethode
+ beschrijvingUitgevoerdeBewerkingen
+ meetvariabelen
+ meetmethodiek
+ soortDataset
+ kostenOpJaarbasis
+ soortenoverzicht
+ habitats
+ }
+ links {
+ protocol
+ url
+ name
+ description
+ }
+ pointOfContactOrganisations {
+ organisationName
+ email
+ rol
+ }
+ layer {
+ name
+ url
+ layer
+ indexableWfsProperties
+ }
+ }
+}
+`
+
+function recursivelyFindLayer(layers, name) {
+ const layerList = Array.isArray(layers)
+ ? layers
+ : [layers]
+
+ for (let layer of layerList) {
+ if (layer.Name && layer.Name._text === name) {
+ return layer
+ }
+
+ if (layer.Layer) {
+ const foundLayer = recursivelyFindLayer(layer.Layer, name)
+ if (foundLayer) {
+ return foundLayer
+ }
+ }
+ }
+
+ return null
+}
+
+export async function fetchViewerLayerXML({ id }) {
+ const { viewerLayer: {
+ layer,
+ ...viewerLayer
+ } } = await datocmsRequest({ query, variables: { id } })
+
+ console.log(layer)
+
+ const data = {
+ layer: {
+ ...layer,
+ ...viewerLayer,
+ }
+ }
+
+ const getCapabilitiesUrl = `${data.layer.url}?service=WMS&request=GetCapabilities`
+
+ const httpsAgent = new https.Agent({
+ rejectUnauthorized: false,
+ })
+
+ const capabilitiesXml = await fetch(getCapabilitiesUrl, {
+ agent: httpsAgent,
+ }).then((res) => res.text())
+
+ const capabilities = JSON.parse(
+ convert.xml2json(capabilitiesXml, {
+ compact: true,
+ })
+ )
+
+ const layerInfo = recursivelyFindLayer(capabilities.WMS_Capabilities.Capability.Layer, data.layer.layer)
+
+ let formatted = null
+
+ if (data.layer.useFactsheetAsMetadata) {
+ const factsheet = data.layer.factsheets[0]
+
+ if (factsheet) {
+ formatted = formatFactsheetXml({
+ id,
+ layerInfo,
+ layer: data.layer,
+ factsheet,
+ })
+ }
+
+ } else if (data.layer.inspireMetadata) {
+ formatted = formatInspireMetadataXml({
+ id,
+ layerInfo,
+ layer: data.layer,
+ })
+ }
+
+ return formatted
+}
From d6b3cf43c61a397c8b69aec09317d179e117f18a Mon Sep 17 00:00:00 2001
From: sjoerdbeentjes <11621275+sjoerdbeentjes@users.noreply.github.com>
Date: Tue, 30 Jul 2024 14:08:07 +0200
Subject: [PATCH 3/9] Refactor variable names for layer ID handling
---
src/api/sync-viewer-layer-background.js | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/api/sync-viewer-layer-background.js b/src/api/sync-viewer-layer-background.js
index 9d8308f..3fb2be1 100644
--- a/src/api/sync-viewer-layer-background.js
+++ b/src/api/sync-viewer-layer-background.js
@@ -59,7 +59,7 @@ export const handler = withServerDefaults(async (event, _) => {
const layerData = JSON.parse(event.body)
- const layerId = layerData.entity.id
+ const viewerLayerId = layerData.entity.id
const { menus } = await datocmsRequest({
query: viewersWithLayersQuery,
@@ -68,7 +68,7 @@ export const handler = withServerDefaults(async (event, _) => {
const menuTree = buildMenuTree(formattedMenus)
try {
- await syncViewerLayers(menuTree, layerData.event_type, layerId)
+ await syncViewerLayers(menuTree, layerData.event_type, viewerLayerId)
}
catch (e) {
console.log('The following error occured', e.message)
@@ -102,7 +102,7 @@ async function syncViewerLayers(menuTree, eventType, viewerLayerId) {
const geonetworkInstancesArray = Array.from(geonetworkInstances)
- const xml = await fetchViewerLayerXML({ id: layerId })
+ const xml = await fetchViewerLayerXML({ id: viewerLayerId })
// Can occur when no update needs to be done (because there is no factsheet or inspireMetadata)
if (xml === null) {
@@ -151,13 +151,15 @@ async function syncViewerLayers(menuTree, eventType, viewerLayerId) {
case 'create':
case 'publish':
const {
- layer: { thumbnails },
+ viewerLayer: {
+ layer: { thumbnails },
+ }
} = await datocmsRequest({
query: viewerLayerByIdQuery,
- variables: { id: layerId },
+ variables: { id: viewerLayerId },
})
- await addThumbnailsToRecord(thumbnails, layerId, geonetwork)
+ await addThumbnailsToRecord(thumbnails, viewerLayerId, geonetwork)
}
}
)
From ec73eadb7cb0b79e90e9d385660fffaf4b4120de Mon Sep 17 00:00:00 2001
From: sjoerdbeentjes <11621275+sjoerdbeentjes@users.noreply.github.com>
Date: Tue, 30 Jul 2024 14:20:43 +0200
Subject: [PATCH 4/9] add log
---
src/api/sync-viewer-layer-background.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/api/sync-viewer-layer-background.js b/src/api/sync-viewer-layer-background.js
index 3fb2be1..c725a9a 100644
--- a/src/api/sync-viewer-layer-background.js
+++ b/src/api/sync-viewer-layer-background.js
@@ -102,6 +102,8 @@ async function syncViewerLayers(menuTree, eventType, viewerLayerId) {
const geonetworkInstancesArray = Array.from(geonetworkInstances)
+ console.log(geonetworkInstancesArray)
+
const xml = await fetchViewerLayerXML({ id: viewerLayerId })
// Can occur when no update needs to be done (because there is no factsheet or inspireMetadata)
From 96331f43b2cd8d0ee55fa75c6afe28ef1f10361a Mon Sep 17 00:00:00 2001
From: sjoerdbeentjes <11621275+sjoerdbeentjes@users.noreply.github.com>
Date: Tue, 30 Jul 2024 16:18:35 +0200
Subject: [PATCH 5/9] Remove debug log from syncViewerLayers
---
src/api/sync-viewer-layer-background.js | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/api/sync-viewer-layer-background.js b/src/api/sync-viewer-layer-background.js
index c725a9a..3fb2be1 100644
--- a/src/api/sync-viewer-layer-background.js
+++ b/src/api/sync-viewer-layer-background.js
@@ -102,8 +102,6 @@ async function syncViewerLayers(menuTree, eventType, viewerLayerId) {
const geonetworkInstancesArray = Array.from(geonetworkInstances)
- console.log(geonetworkInstancesArray)
-
const xml = await fetchViewerLayerXML({ id: viewerLayerId })
// Can occur when no update needs to be done (because there is no factsheet or inspireMetadata)
From f84caccf784697efc13cea5a615c4e27884af7e7 Mon Sep 17 00:00:00 2001
From: sjoerdbeentjes <11621275+sjoerdbeentjes@users.noreply.github.com>
Date: Wed, 31 Jul 2024 10:57:04 +0200
Subject: [PATCH 6/9] Simplify thumbnail fetch in syncViewerLayers
---
src/api/sync-viewer-layer-background.js | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/api/sync-viewer-layer-background.js b/src/api/sync-viewer-layer-background.js
index 3fb2be1..88d4ff3 100644
--- a/src/api/sync-viewer-layer-background.js
+++ b/src/api/sync-viewer-layer-background.js
@@ -150,16 +150,14 @@ async function syncViewerLayers(menuTree, eventType, viewerLayerId) {
switch (eventType) {
case 'create':
case 'publish':
- const {
- viewerLayer: {
- layer: { thumbnails },
- }
- } = await datocmsRequest({
+ const { viewerLayer } = await datocmsRequest({
query: viewerLayerByIdQuery,
variables: { id: viewerLayerId },
})
- await addThumbnailsToRecord(thumbnails, viewerLayerId, geonetwork)
+ console.log('viewerLayer', viewerLayer)
+
+ await addThumbnailsToRecord(viewerLayer?.layer?.thumbnails, viewerLayerId, geonetwork)
}
}
)
From 3cfc367f5d9f3801fe42b7e6c30746c8f441d614 Mon Sep 17 00:00:00 2001
From: sjoerdbeentjes <11621275+sjoerdbeentjes@users.noreply.github.com>
Date: Thu, 1 Aug 2024 11:41:43 +0200
Subject: [PATCH 7/9] Update sync logic and error handling for viewer layers
---
src/api/sync-viewer-layer-background.js | 98 +++++++++++++++++--------
src/lib/fetch-layer-xml.js | 2 -
src/lib/fetch-viewer-layer-xml.js | 2 -
src/lib/find-geonetwork-instances.js | 6 +-
4 files changed, 73 insertions(+), 35 deletions(-)
diff --git a/src/api/sync-viewer-layer-background.js b/src/api/sync-viewer-layer-background.js
index 88d4ff3..aa13b48 100644
--- a/src/api/sync-viewer-layer-background.js
+++ b/src/api/sync-viewer-layer-background.js
@@ -7,14 +7,15 @@ import { findGeonetworkInstances } from '../lib/find-geonetwork-instances'
import { fetchViewerLayerXML } from '../lib/fetch-viewer-layer-xml'
import { formatMenusRecursive } from '../lib/format-menu'
import Mailjet from 'node-mailjet'
+import fs from 'fs';
const mailjet = new Mailjet({
apiKey: process.env.MAILJET_API_TOKEN,
apiSecret: process.env.MAILJET_API_SECRET,
})
-const viewersWithLayersQuery = /* graphql */ `
-query viewersWithLayers ($first: IntType, $skip: IntType = 0, $locale: SiteLocale = nl) {
+const viewersWithViewerLayersQuery = /* graphql */ `
+query viewersWithViewerLayersQuery ($first: IntType, $skip: IntType = 0, $locale: SiteLocale = nl) {
menus: allMenus(first: $first, skip: $skip, locale: $locale) {
id
geonetwork {
@@ -57,46 +58,87 @@ export const handler = withServerDefaults(async (event, _) => {
}
}
- const layerData = JSON.parse(event.body)
+ const data = JSON.parse(event.body)
- const viewerLayerId = layerData.entity.id
+ const id = data.entity.id
const { menus } = await datocmsRequest({
- query: viewersWithLayersQuery,
+ query: viewersWithViewerLayersQuery,
+ preview: true
})
const formattedMenus = formatMenusRecursive(menus)
const menuTree = buildMenuTree(formattedMenus)
try {
- await syncViewerLayers(menuTree, layerData.event_type, viewerLayerId)
+ const type = data.related_entities.find(entity => entity.type === 'item_type').attributes.api_key
+
+ if (type === 'viewer_layer') {
+ await syncViewerLayers(menuTree, data.event_type, id)
+ } else if (type === 'menu') {
+ await syncViewer(menuTree, data.event_type, id)
+ }
}
catch (e) {
console.log('The following error occured', e.message)
- // for (let email of findEmailContactsForLayerId(menuTree, layerId)) {
- // console.log('Sending email to', email)
-
- // await mailjet.post('send', { version: 'v3.1' }).request({
- // Messages: [
- // {
- // From: {
- // Email: process.env.MAILJET_FROM_EMAIL,
- // },
- // To: [
- // {
- // Email: email,
- // },
- // ],
- // Subject: `Fout bij opslaan metadata voor laag ${layerId}`,
- // HTMLPart: e.message,
- // },
- // ],
- // })
- // }
- }
+ for (let email of findEmailContactsForLayerId(menuTree, layerId)) {
+ console.log('Sending email to', email)
+ await mailjet.post('send', { version: 'v3.1' }).request({
+ Messages: [
+ {
+ From: {
+ Email: process.env.MAILJET_FROM_EMAIL,
+ },
+ To: [
+ {
+ Email: email,
+ },
+ ],
+ Subject: `Fout bij opslaan metadata voor laag ${layerId}`,
+ HTMLPart: e.message,
+ },
+ ],
+ })
+ }
+ }
})
+async function syncViewer(menuTree, eventType, viewerId) {
+ const viewerLayers = new Set()
+
+ const findChilrenInMenu = (menu, viewerId) => {
+ const { children } = menu
+
+ if (children) {
+ children.forEach((child) => {
+ if (child.id === viewerId && child.children) {
+ child.children.forEach((viewerLayer) => {
+ viewerLayers.add(viewerLayer.id)
+ })
+ }
+
+ findChilrenInMenu(child, viewerId)
+ })
+ }
+ }
+
+ menuTree.forEach((viewer) => {
+ findChilrenInMenu(viewer, viewerId)
+ })
+
+ const viewerLayersArray = Array.from(viewerLayers)
+
+
+ const requestsPromises = viewerLayersArray.map(
+ async (viewerLayerId) => {
+ await syncViewerLayers(menuTree, eventType, viewerLayerId)
+ }
+ )
+
+ const results = await Promise.allSettled(requestsPromises)
+}
+
async function syncViewerLayers(menuTree, eventType, viewerLayerId) {
const geonetworkInstances = findGeonetworkInstances(menuTree, viewerLayerId)
@@ -155,8 +197,6 @@ async function syncViewerLayers(menuTree, eventType, viewerLayerId) {
variables: { id: viewerLayerId },
})
- console.log('viewerLayer', viewerLayer)
-
await addThumbnailsToRecord(viewerLayer?.layer?.thumbnails, viewerLayerId, geonetwork)
}
}
diff --git a/src/lib/fetch-layer-xml.js b/src/lib/fetch-layer-xml.js
index f42b0f4..7d23809 100644
--- a/src/lib/fetch-layer-xml.js
+++ b/src/lib/fetch-layer-xml.js
@@ -130,8 +130,6 @@ export async function fetchLayerXML({ id }) {
...viewerLayer
} } = await datocmsRequest({ query, variables: { id } })
- console.log(layer)
-
const data = {
layer: {
...layer,
diff --git a/src/lib/fetch-viewer-layer-xml.js b/src/lib/fetch-viewer-layer-xml.js
index 346ef70..a5bbb94 100644
--- a/src/lib/fetch-viewer-layer-xml.js
+++ b/src/lib/fetch-viewer-layer-xml.js
@@ -131,8 +131,6 @@ export async function fetchViewerLayerXML({ id }) {
...viewerLayer
} } = await datocmsRequest({ query, variables: { id } })
- console.log(layer)
-
const data = {
layer: {
...layer,
diff --git a/src/lib/find-geonetwork-instances.js b/src/lib/find-geonetwork-instances.js
index 2b33b58..99fc36e 100644
--- a/src/lib/find-geonetwork-instances.js
+++ b/src/lib/find-geonetwork-instances.js
@@ -1,13 +1,15 @@
-export function findGeonetworkInstances(menuTree, layerId) {
+export function findGeonetworkInstances(menuTree, id) {
const geonetworkInstances = new Map()
+ console.log('searching for geonetwork instances with id', id)
+
menuTree.forEach((viewer) => {
const findInMenu = (menu) => {
const { children } = menu
if (children) {
children.forEach((child) => {
- if (child.id === layerId) {
+ if (child.id === id) {
const { geonetwork } = viewer
if (geonetwork) {
From 493c5bd67cb7408317d3648ac6eac7245e785ed5 Mon Sep 17 00:00:00 2001
From: sjoerdbeentjes <11621275+sjoerdbeentjes@users.noreply.github.com>
Date: Fri, 2 Aug 2024 14:03:57 +0200
Subject: [PATCH 8/9] remove log
---
src/lib/find-geonetwork-instances.js | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/lib/find-geonetwork-instances.js b/src/lib/find-geonetwork-instances.js
index 99fc36e..513a05a 100644
--- a/src/lib/find-geonetwork-instances.js
+++ b/src/lib/find-geonetwork-instances.js
@@ -1,8 +1,6 @@
export function findGeonetworkInstances(menuTree, id) {
const geonetworkInstances = new Map()
- console.log('searching for geonetwork instances with id', id)
-
menuTree.forEach((viewer) => {
const findInMenu = (menu) => {
const { children } = menu
From 7cd0027fd4064ef903c9ca0c58d667aba419160d Mon Sep 17 00:00:00 2001
From: sjoerdbeentjes <11621275+sjoerdbeentjes@users.noreply.github.com>
Date: Fri, 2 Aug 2024 14:05:50 +0200
Subject: [PATCH 9/9] update environment
---
src/lib/datocms.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lib/datocms.js b/src/lib/datocms.js
index 068a38a..208fea5 100644
--- a/src/lib/datocms.js
+++ b/src/lib/datocms.js
@@ -26,7 +26,7 @@ function executeFetch(query, variables = {}, preview = false) {
headers: {
'Content-Type': 'application/json',
Authorization: process.env.DATO_API_TOKEN,
- 'X-Environment': 'main-test-env',
+ 'X-Environment': 'production',
},
body: JSON.stringify({ query, variables }),
})