From e0cb9e22f9c8eb6ff195f2195599fefdcf6875b2 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Thu, 29 Nov 2018 15:54:49 +0200
Subject: [PATCH] Handle rejected promises, remove unnecessary result mappers

---
 src/server/index.js            |   2 +-
 src/server/sparql/Mappers.js   | 108 ---------------------------------
 src/server/sparql/SparqlApi.js |  29 +++------
 3 files changed, 9 insertions(+), 130 deletions(-)

diff --git a/src/server/index.js b/src/server/index.js
index 66e20a98..fc1e305d 100644
--- a/src/server/index.js
+++ b/src/server/index.js
@@ -32,7 +32,7 @@ app.get('/manuscripts', (req, res) => {
     // console.log(data);
     res.json(data);
   })
-    .catch((err) => {
+    .catch(err => {
       console.log(err);
       return res.sendStatus(500);
     });
diff --git a/src/server/sparql/Mappers.js b/src/server/sparql/Mappers.js
index a31bd359..526416c4 100644
--- a/src/server/sparql/Mappers.js
+++ b/src/server/sparql/Mappers.js
@@ -1,105 +1,6 @@
 import _ from 'lodash';
 import { getTreeFromFlatData } from 'react-sortable-tree';
 
-//https://github.com/SemanticComputing/angular-paging-sparql-service/blob/master/src/sparql.object-mapper-service.js
-
-export const groupBy = (sparqlBindings, group) => Object.values(_.reduce(sparqlBindings, (results, sparqlResult) => {
-  const id = _.get(sparqlResult[group], 'value');
-  if (id === undefined) {
-    return [];
-  }
-  if (!results[id]) {
-    results[id] = {};
-  }
-  let result = results[id];
-  _.forOwn(sparqlResult, (value, key) => {
-    if (key === group) {
-      result[group] = value.value; // ignore lang tags
-    } else {
-      const oldValues = result[key];
-      // add new value if it doesn't already exist
-      if (!_.includes(oldValues, value.value)) {
-        (result[key] || (result[key] = [])).push(value.value);
-      }
-    }
-  });
-  return results;
-}, {}));
-
-// export const mergeSuggestions = (suggestions) => {
-//   return groupBy(_.compact(_.flatten(suggestions)), 'label', false);
-// };
-//
-//
-// export const mergeSimpleSuggestions = (suggestions) => {
-//
-//   // Suggestions from different datasets may have duplicates
-//   let uniqueSuggestions = [...new Set(_.flatten(suggestions))];
-//
-//   // Sort suggestions alphabetically, because Lunece score does
-//   // not work with wildcard queries.
-//   return uniqueSuggestions.sort();
-// };
-//
-
-// const capitalizeFirstLetter = (string) => {
-//   return string.charAt(0).toUpperCase() + string.slice(1);
-// };
-
-export const mapManuscripts = (sparqlBindings) => {
-  // console.log(sparqlBindings);
-  const results = sparqlBindings.map(b => {
-    return {
-      id: b.id.value,
-      prefLabel: createStringList(b.prefLabel.value),
-      //entry: createStringList(b.entry.value),
-      manuscriptRecord: _.has(b, 'manuscriptRecord') ? createStringList(b.manuscriptRecord.value) : '-',
-      author: _.has(b, 'author',) ? createObjectList(b.author.value, 'names') : '-',
-      owner: _.has(b, 'owner',) ? createObjectList(b.owner.value, 'names') : '-',
-      timespan: _.has(b, 'timespan',) ? createStringList(b.timespan.value) : '-',
-      creationPlace: _.has(b, 'creationPlace',) ? createObjectList(b.creationPlace.value, 'places') : '-',
-      material: _.has(b, 'material',) ? createStringList(b.material.value) : '-',
-      language: _.has(b, 'language',) ? createStringList(b.language.value) : '-',
-    };
-  });
-  return results;
-};
-
-const createStringList = (str) => {
-  const list = str.split('|');
-  return list.length < 2 ? list[0] : list;
-};
-
-const createObjectList = (str, sdbmType) => {
-  const list = str.split('|');
-  if (list.length < 2) {
-    return createObject(list[0], sdbmType);
-  } else {
-    return list.map(item => {
-      return createObject(item, sdbmType);
-    });
-  }
-};
-
-const createObject = (str, sdbmType) => {
-  const values = str.split(';');
-  if (values.length > 2) {
-    return {
-      id: values[1],
-      prefLabel: values[0],
-      order: values[2],
-      entry: values[3],
-      sdbmLink: `https://sdbm.library.upenn.edu/${sdbmType}/${values[1].substring(values[1].lastIndexOf('/') + 1)}`
-    };
-  } else {
-    return {
-      id: values[1],
-      prefLabel: values[0],
-      sdbmLink: `https://sdbm.library.upenn.edu/${sdbmType}/${values[1].substring(values[1].lastIndexOf('/') + 1)}`
-    };
-  }
-};
-
 export const mapPlaces = (sparqlBindings) => {
   //console.log(sparqlBindings);
   const results = sparqlBindings.map(b => {
@@ -176,12 +77,3 @@ const recursiveSort = nodes => {
   });
   return nodes;
 };
-
-export const mapAllResults = (results) => groupBy(results, 'id');
-
-export const mergeFederatedResults = (results) => {
-  // SPARQL query defines the ordering of results of one dataset.
-  // Return all merged results subsequentially.
-  //console.log(_.flatten(results))
-  return _.flatten(results);
-};
diff --git a/src/server/sparql/SparqlApi.js b/src/server/sparql/SparqlApi.js
index 34c75783..d0261f19 100644
--- a/src/server/sparql/SparqlApi.js
+++ b/src/server/sparql/SparqlApi.js
@@ -26,31 +26,18 @@ class SparqlApi {
         body:    params,
         headers: headers,
       })
+        .then(res => {
+          if (res.ok) { // res.status >= 200 && res.status < 300
+            return res;
+          } else {
+            return reject(res.statusText);
+          }
+        })
         .then(res => res.text())
         .then(data => {
           return resolve(data);
         })
-        .catch(error => console.log('error is', error));
-      // if (this.endpoint === 'http://vocab.getty.edu/sparql.json') {
-      //   const url = this.endpoint + '?query=' + query;
-      //   fetch(url)
-      //     .then(response => {
-      //       return response.json();
-      //     })
-      //     .then(responseData => {
-      //       return resolve(responseData);
-      //     })
-      //     .catch(error => console.log('error is', error));
-      // } else {
-      //   const body = { query: query};
-      //   request.post(this.endpoint)
-      //     .send(body)
-      //     .set(headers)
-      //     .end((err, res) => {
-      //       if (err || !res.ok) return reject(err);
-      //       return resolve(res.text);
-      //     });
-      // }
+        .catch(err => console.log(err));
     });
   }
 
-- 
GitLab