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')
 | 
						|
  );
 | 
						|
};
 |