### Présentation Le module **LI-ADD-UNPAYWALL** permet d’ajouter des enrichissement ‘Unpaywall’ celui-ci étant récupéré par le web service ‘biblio-tools/v1/unpaywall/corhal’. L'objectif est de récupérer la ou les URL(s) pointant vers le fulltext si celui-ci est librement disponible sur Internet, URL(s) accompagnée(s) des informations détaillées (is_oa, oa_status, oa_type, etc.) ### 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 l'objet docObject.doi exist. - Envoyer au webservice unpaywallWsUrl définit dans le fichier config.js le doi pour chercher les enrichissement unpaywall. - Ajouter le résultat de la recherche a l'objet 'enrichments.openAccess.unpaywall' ### Arborescence ``` . ├── node_modules │ └── ... ├── config/ │ └── config.js // Configuration pour l'environnement de production ├── test │ └── 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 ``` # Annexes ## Options via NPM - **npm install** Installe les dépendances NPM présente dans le `./package.json` - **npm test** Lance l'ensemble des tests unitaires (écrits en JavaScript -mocha-) ## Exemple d'un docObject accepté en entrée ``` { … doi: '10.15282/ijame.14.4.2017.7.0368' } ``` ## Exemples du fichier json en sortie Remarquez l'ajout de l'objets `enrichments`. ### Exemple de modification de fichier json sans problème ``` { … doi: '10.15282/ijame.14.4.2017.7.0368', enrichments: { openAccess: { unpaywall: [...] } }, }, ``` ### Exemple de sortie du docObject avec problème Remarquez l'ajout de `errCode` et `errMessage` dans le docObject : ``` { … doi: '10.15282/ijame.14.4.2017.7.0368', "errCode":"HTTPError", "_errMsg":"Erreur dans la requête du webservice ADD-UNPAYWALL" } ``` ## Codes d'erreur : Lib GOT | Code | Signification | Note(s) | | ------------------------- | ------------------------------------------------------| ------- | | UnsupportedProtocolError | Protocole du webservice ADD-UNPAYWALL non pris en charge. | | HTTPError | Erreur HTTP du webservice ADD-UNPAYWALL. | | ParseError | Erreur du parsing de résultat du webservice ADD-UNPAYWALL. | | RequestError | Erreur dans la requête du webservice ADD-UNPAYWALL. | | TimeoutError | Erreur de Timeout dans la requête du webservice ADD-UNPAYWALL | | CancelError | La requête du webservice ADD-UNPAYWALL a été annulée | | BadResponse | Le webservice ADD-UNPAYWALL renvoie une réponse incorrecte |