UNPKG

@ikarha/emecef

Version:

Node.js client library for interacting with the Benin e-MCF API for normalized invoicing

86 lines (85 loc) 3.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.errors = exports.EmecfApiError = void 0; exports.getErrorMessage = getErrorMessage; class EmecfApiError extends Error { constructor(details) { super(`${details.code} : ${details.description}`); this.name = 'E-MECEF-ERROR'; this.details = details; } static fromResponse(error) { if (error.status === 200) { if (error?.data?.errorCode) { throw new EmecfApiError({ code: error.data.errorCode, description: getErrorMessage(error.data.errorCode), stack: '' }); } } if (error.response?.status === 400) { if (error.response.data?.errorCode) { return new EmecfApiError({ code: error.response.data.errorCode, description: getErrorMessage(error.response.data.errorCode), stack: error }); } return new EmecfApiError({ code: 'BAD_REQUEST', description: getErrorMessage('BAD_REQUEST'), stack: error }); } if (error.response?.status === 500) { return new EmecfApiError({ code: 'ITERNAL_SERVER_ERROR', description: getErrorMessage('ITERNAL_SERVER_ERROR'), stack: error }); } if (error.response?.data?.errorCode) { const { errorCode, errorDesc } = error.response.data; return new EmecfApiError({ code: errorCode, description: errorDesc || getErrorMessage(errorCode) || 'Erreur inconnue API error', stack: error }); } return new EmecfApiError({ code: 'UNKNOWN_ERROR', description: error.message || getErrorMessage('UNKNOWN_ERROR'), stack: error }); } static checkSuccessResponse(response) { if (response?.data?.errorCode) { throw response; } return response.data; } } exports.EmecfApiError = EmecfApiError; function getErrorMessage(errorCode) { return exports.errors[errorCode] || 'Contactez le support technique e-mecef pour plus d\'assistance.'; } exports.errors = { 'ITERNAL_SERVER_ERROR': 'Erreur interne du serveur emecef, veuillez réessayer ultérieurement.', 'BAD_REQUEST': 'Requête invalide, veuillez vérifier les données envoyées.', 'UNKNOWN_ERROR': 'Une erreur inconnue s\'est produite, veuillez vérifier votre connexion Internet ou si vous avez écrit correctement l\'URL de l\'API.', 'NETWORK_ERROR': 'Erreur de réseau, veuillez vérifier votre connexion Internet.', '1': 'Le nombre maximum de factures en attente est dépassé', '3': 'Le type de facture n\'est pas valide', '4': 'La référence de la facture originale est manquante', '5': 'La référence de la facture originale ne comporte pas 24 caractères', '6': 'La valeur de l\'AIB n\'est pas valide', '7': 'Le type de paiement n\'est pas valide', '8': 'La facture doit contenir des articles', '9': 'Le groupe de taxation au niveau des articles n\'est pas valide', '10': 'La référence de la facture originale ne peut pas être validée, veuillez réessayer plus tard', '11': 'La référence de la facture originale n\'est pas valide (la facture originale est introuvable)', '12': 'La référence de la facture originale n\'est pas valide (le montant sur la facture d\'avoir a dépassé le montant de la facture originale)', '20': 'La facture n\'existe pas ou elle est déjà finalisée / annulée', '99': 'Erreur lors du traitement de la demande', };