41 lines
940 B
JavaScript
41 lines
940 B
JavaScript
|
const { client } = require('../../algolia');
|
||
|
const debug = require('debug');
|
||
|
const getChallengeData = require('../../data-sources/challenges');
|
||
|
|
||
|
const log = debug('fcc:search:init:challenge');
|
||
|
|
||
|
const index = client.initIndex('challenge');
|
||
|
|
||
|
index.setSettings(
|
||
|
{
|
||
|
searchableAttributes: ['title', 'description', 'blockName'],
|
||
|
distinct: true,
|
||
|
attributeForDistinct: 'id',
|
||
|
attributesForFaceting: ['blockName']
|
||
|
},
|
||
|
(err, response) => {
|
||
|
if (err) {
|
||
|
log(err.message);
|
||
|
log(err.debugData);
|
||
|
throw new Error(err);
|
||
|
}
|
||
|
log('setSettings\n\n' + JSON.stringify(response, null, 2));
|
||
|
}
|
||
|
);
|
||
|
|
||
|
exports.insertChallenges = function insertChallenges() {
|
||
|
return getChallengeData().subscribe(
|
||
|
challenges => {
|
||
|
index.addObjects(challenges, err => {
|
||
|
if (err) {
|
||
|
throw new Error(err);
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
err => {
|
||
|
throw new Error(err);
|
||
|
},
|
||
|
() => log('complete')
|
||
|
);
|
||
|
};
|