Newer
Older
istex-api-demo / js / takeMapping.js
// -----------------------------------------------------------------
// Script de récupération du mapping actuellement sur bulkIndexation
// -----------------------------------------------------------------

var cp = require('child_process');
var fs = require('fs');
//var apiUrl = require('./config.js').apiUrl;
var apiUrl = 'api.istex.fr';
//var apiUrl = 'api-dev.istex.fr';

// En cas de non récupération du mapping, on garde un minimum
var finalMapping = {
  'corpusName': 'string',
  'title': 'string',
  'author.name': 'string',
  'subject.value': 'string'
};

console.log('Récupération du mapping...');
var raw = cp.execSync('curl -XGET ' + apiUrl + '/mapping', {
  encoding: 'utf8'
});

console.log('Mapping récupéré...');
try {

  var jsonMapping = JSON.parse(raw);

  function recursiveMapping(raw, road, finalMapping) {
    var keys = Object.keys(raw);
    for (var i = 0; i < keys.length; i++) {
      if (typeof raw[keys[i]] === 'object') {
        recursiveMapping(raw[keys[i]], road + ((road !== '') ? '.' : '') + keys[i], finalMapping);
      } else {
        if (keys[i] === 'raw') finalMapping[road + '.raw'] = raw[keys[i]];
        finalMapping[road] = raw[keys[i]];
      }
    }
    recursiveMapping(jsonMapping, '', finalMapping);
  };

  // Ecriture de mapping.json
  fs.writeFile('./js/mapping.json', JSON.stringify(finalMapping), 'utf8', function(err) {
    if (err) {
      console.log('!!!!!!! ERREUR D\'ECRITURE DU MAPPING.JSON !!!!!!!');
      console.log(err);
    }
    console.log('Mapping formaté dans mapping.json !');
  });

} catch (e) {
  console.log('!!!!!!! ERREUR DE PARSING DU MAPPING RECUPERE !!!!!!!');
  console.log(e);
}

// console.log('Récupération de l\'ensemble des corpus disponibles...');
// raw = cp.execSync('curl -XGET ' + apiURL + '/corpus/', {
//   encoding: 'utf8'
// });

// console.log('Corpus récupérés...');
// try {

//   // Remplacement de la balise <corpusToCharge/> de 050-global.html
//   fs.readFile('./public/documentation/300-search.html', 'utf8', function(err, data) {
//     if (err) {
//       console.log('!!!!!!! ERREUR DE LECTURE DE 300-search.html !!!!!!!');
//       console.log(err);
//     }

//     var result = data.replace(/<corpusToCharge\/>/g, '<pre>' + raw + '</pre>');
//     fs.writeFile('./public/documentation/300-search.html', result, 'utf8', function(err) {
//       if (err) {
//         console.log('!!!!!!! ERREUR D\'ECRITURE DE 300-search.html !!!!!!!');
//         console.log(err);
//       }
//       console.log('Liste des corpus insérée dans 300-search.html !');
//     });
//   });

// } catch (e) {
//   console.log('!!!!!!! ERREUR DE PARSING DU MAPPING RECUPERE !!!!!!!');
//   console.log(e);
// }