Move formatReferenceSources() to BookReferenceController
This commit is contained in:
parent
86c5a3bc45
commit
f5a4db6dc9
|
@ -7,6 +7,30 @@ class BookReferenceController {
|
||||||
this.lang = language;
|
this.lang = language;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static formatReferenceSources(reference) {
|
||||||
|
const referenceSources = Object.keys(reference.sources);
|
||||||
|
const reformattedSources = referenceSources.map(source => {
|
||||||
|
const uri = reference.sources[source];
|
||||||
|
let link;
|
||||||
|
switch (source) {
|
||||||
|
default:
|
||||||
|
case 'inventaire': {
|
||||||
|
link = `${Inventaire.url}/entity/${uri}`
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
source,
|
||||||
|
uri,
|
||||||
|
link,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
reference.sources = reformattedSources;
|
||||||
|
|
||||||
|
return reference;
|
||||||
|
}
|
||||||
|
|
||||||
async createOrUpdateReference(source, sourceId, skipSearchBySourceCodes = false) {
|
async createOrUpdateReference(source, sourceId, skipSearchBySourceCodes = false) {
|
||||||
const searchController = new SearchController(this.models);
|
const searchController = new SearchController(this.models);
|
||||||
if (!skipSearchBySourceCodes) {
|
if (!skipSearchBySourceCodes) {
|
||||||
|
|
|
@ -2,8 +2,8 @@ const fetch = require('node-fetch');
|
||||||
const { Op, fn, col } = require('sequelize');
|
const { Op, fn, col } = require('sequelize');
|
||||||
|
|
||||||
const BooksController = require('../bookData');
|
const BooksController = require('../bookData');
|
||||||
|
const BookReferenceController = require('../bookReference');
|
||||||
const { quickSearchInventaire } = require('./Inventaire');
|
const { quickSearchInventaire } = require('./Inventaire');
|
||||||
const Inventaire = require('../bookData/Inventaire');
|
|
||||||
|
|
||||||
const defaultSearchOptions = {
|
const defaultSearchOptions = {
|
||||||
searchBy: 'name', // A column name in the BookReference model, mainly 'name' or 'description'
|
searchBy: 'name', // A column name in the BookReference model, mainly 'name' or 'description'
|
||||||
|
@ -58,30 +58,6 @@ class SearchController {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
static formatReferenceSources(reference) {
|
|
||||||
const referenceSources = Object.keys(reference.sources);
|
|
||||||
const reformattedSources = referenceSources.map(source => {
|
|
||||||
const uri = reference.sources[source];
|
|
||||||
let link;
|
|
||||||
switch (source) {
|
|
||||||
default:
|
|
||||||
case 'inventaire': {
|
|
||||||
link = `${Inventaire.url}/entity/${uri}`
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
source,
|
|
||||||
uri,
|
|
||||||
link,
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
reference.sources = reformattedSources;
|
|
||||||
|
|
||||||
return reference;
|
|
||||||
}
|
|
||||||
|
|
||||||
async search(searchTerm, options = defaultSearchOptions) {
|
async search(searchTerm, options = defaultSearchOptions) {
|
||||||
const searchBy = options.searchBy.replace('title', 'name').replace('author', 'description');
|
const searchBy = options.searchBy.replace('title', 'name').replace('author', 'description');
|
||||||
const { source, language } = options;
|
const { source, language } = options;
|
||||||
|
@ -116,8 +92,8 @@ class SearchController {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
return [
|
return [
|
||||||
...bookReferences.map(match => SearchController.formatReferenceSources(match)),
|
...bookReferences.map(match => BookReferenceController.formatReferenceSources(match)),
|
||||||
...extraReferences.map(match => SearchController.formatReferenceSources(match)),
|
...extraReferences.map(match => BookReferenceController.formatReferenceSources(match)),
|
||||||
...searchResults,
|
...searchResults,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue