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