@mbouri mbouri authored on 23 Nov 2021
conf feat: update http proxy agent 2 years ago
lib feat: add proxyAgent and config file 2 years ago
test feat: add error logs to docObject 2 years ago
.eslintrc.json feat: first commit 2 years ago
.gitignore feat: version 2 2 years ago
README.md docs: addd readme.md v1 2 years ago
index.js fix: fix fetch parameters 2 years ago
package.json feat: update http proxy agent 2 years ago
README.md

li-harvest-hal

Présentation

Objectif du module :

  • Récupérer l'ensemble des notices HAL (France) pour une période de temps donnée. Ce module a quelques spécificités :
  • Un seul docObject factice en entrée, le rôle est d'initialiser les traitements.
  • Un seul docObject en sortie également. Ce docObject de sortie a une structure permettant d'enchaîner les traitements avec le module li-carto.

Fonctionnement

Le module effectue les opérations suivantes :

  • Récupération en entrée d'un docObject, ainsi que d'une callback cb.
  • Vérifier si un moissonnage avec les mêmes paramètres été déjà effectué.
  • Construire le query de recherche dans l’API Hal a partir du fichier query.json.
  • Appels à l'API pour l'interrogation/parcours des résultats.
  • Vérification des résultats et écriture sur disque des fichiers TEI-HAL.
  • Scroller les résultats de l’API Hal si le nombre des résultats est supérieur à 10K.
  • Gestion du backpressure durant l’écriture sur disque.
  • Gestion des erreurs. (quand l’API ne répond pas par exemple).

Installation

Commande d'Installation :

npm install

Vérification du fonctionnement

Commande d'exécution des tests unitaires :

npm test

Exemple d'un docObject accepté en entrée

{
corpusName: "hal",
cartoType: "conditor:pubmed",
corpusResources: "/applis/corhal/loadistex/corpus-resources",
corpusOutput: "/applis/corhal/corpusOutput"
}

Exemple d'un docObject accepté en sortie

{
corpusName: "hal",
cartoType: "conditor:pubmed",
corpusResources: "/applis/corhal/loadistex/corpus-resources",
corpusOutput: "/applis/corhal/corpusOutput",
corpusRoot: "/data/hal-20211121-to-20211121"
}

Arborescence

.
├── node_modules
│   └── ...
├── config/
│   ├── conf.json           // Fichier de configuration, du proxy et url de l'api
│   │
│   └── query.json          // Les paramètres de recherche de query
├── lib/
│   └── utils.js            // Des fonctions 'utils' utilisées dans index.js
├── test
│   ├── dataset             // Ensemble des docObjects utilisés pour les tests
│   │   └── ...
│   └── run.js              // Ensemble des tests à effectuer
├── .eslintrc.json          // Configuration pour eslint
├── .gitignore
├── README.md               // Le fichier que vous lisez actuellement
├── index.js                // Script principal contenant la méthode doTheJob
└── package.json            // Fichier contenant les dépendances NPM

Le fichier query.json

TODO

Le fichier conf.json

TODO

Codes d'erreur

Code Signification Note(s)
1 Harvest folder already exist.
2 API-HAL request error.
3 No result found.