From 0ab11beea8912e8588f45ca80a246f208e602aa9 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Fri, 19 Nov 2021 11:16:25 +0200
Subject: [PATCH] More options for paginated results backend config

---
 src/server/sparql/FacetResults.js               | 17 +++++++++++++----
 .../perspective_configs/Perspective1Config.js   |  3 +++
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/server/sparql/FacetResults.js b/src/server/sparql/FacetResults.js
index 5847a27f..60f50250 100644
--- a/src/server/sparql/FacetResults.js
+++ b/src/server/sparql/FacetResults.js
@@ -31,6 +31,13 @@ export const getPaginatedResults = ({
   } else {
     ({ endpoint, defaultConstraint, langTag, langTagSecondary } = config)
   }
+  const {
+    properties,
+    filterTarget = 'id',
+    resultMapper = makeObjectList,
+    resultMapperConfig = null,
+    postprocess = null
+  } = config.paginatedResults
   if (constraints == null && defaultConstraint == null) {
     q = q.replace('<FILTER>', '# no filters')
   } else {
@@ -39,7 +46,7 @@ export const getPaginatedResults = ({
       facetClass: resultClass, // use resultClass as facetClass
       constraints,
       defaultConstraint,
-      filterTarget: 'id',
+      filterTarget,
       facetID: null
     }))
   }
@@ -67,7 +74,7 @@ export const getPaginatedResults = ({
   }
   q = q.replace(/<FACET_CLASS>/g, config.facetClass)
   q = q.replace('<PAGE>', `LIMIT ${pagesize} OFFSET ${page * pagesize}`)
-  q = q.replace('<RESULT_SET_PROPERTIES>', config.paginatedResults.properties)
+  q = q.replace('<RESULT_SET_PROPERTIES>', properties)
   if (langTag) {
     q = q.replace(/<LANG>/g, langTag)
   }
@@ -79,7 +86,9 @@ export const getPaginatedResults = ({
     query: endpoint.prefixes + q,
     endpoint: endpoint.url,
     useAuth: endpoint.useAuth,
-    resultMapper: makeObjectList,
+    resultMapper,
+    resultMapperConfig,
+    postprocess,
     resultFormat
   })
 }
@@ -116,7 +125,7 @@ export const getAllResults = ({
       facetClass,
       constraints,
       defaultConstraint,
-      filterTarget: filterTarget,
+      filterTarget,
       facetID: null
     }))
   }
diff --git a/src/server/sparql/sampo/perspective_configs/Perspective1Config.js b/src/server/sparql/sampo/perspective_configs/Perspective1Config.js
index cc74179e..8eef1032 100644
--- a/src/server/sparql/sampo/perspective_configs/Perspective1Config.js
+++ b/src/server/sparql/sampo/perspective_configs/Perspective1Config.js
@@ -17,6 +17,9 @@ export const perspective1Config = {
   // `,
   paginatedResults: {
     properties: manuscriptPropertiesFacetResults
+    // resultMapper:
+    // resultMapperConfig:
+    // postprocess:
   },
   instance: {
     properties: manuscriptPropertiesInstancePage,
-- 
GitLab