Skip to content

Latest commit

 

History

History
201 lines (154 loc) · 4.64 KB

File metadata and controls

201 lines (154 loc) · 4.64 KB

Miller handler v0.3.1

Generador de mensajes para API REST - Módulo para automatizar y estandarizar los mensajes de error en servicios basados en API REST.

Implementación

Se debe especificar el lenguaje por defecto mostrado en los mensajes de error directmante en la instanciación de la clase.

//Import
const mhandler = require('mhandler')

//Instanciación, con lenguaje en inglés por defecto
const Mhandler =  new mhandler()

//Instanciación con el español como idioma por defecto
const Mhandler =  new mhandler('es')

Nota: Actualmente, los únicos lenguajes soportados para la traducción de mensajes de error son el español ('es') y el inglés ('en').

Uso básico

try{
//...
}catch (e){
 //...
 return res.send(500, Mhandler.InternalError())
}

/* retornará
  {
   status: 'error',
   code: 'E08',
   name: 'UnavailableService',
   message: 'El método al recurso especificado está actualmente no disponible.'
  }
*/

Por ejemplo, si deseas mostrar cuales campos (parámetros) se encuentran vacíos en una determinada petición.

try{
  //...
}catch (e){
  //...
  return res.send(500, Mhandler.EmptyFields('firstName', 'lastName'))
}

/* retornará
  {
   status: 'error',
   code: 'E01',
   name: 'RequiredEmptyField',
   message: 'Debería completar los siguientes campos: firstName, lastName.'
  }
*/

Opciones de personalización

Puedes modificar, habilitar e inhabilitar cada una de las propiedades del objeto del mensaje, como en los siguientes ejemplos:

Caso 1: Activando el timestamp en los mensajes

const mhandler = require('mhandler')

//On class instantiation
const Mhandler =  new mhandler('en',{timestamp: true})

/* will return
  {
   status: 'error',
   name: 'InternalError',
   message: 'Something went wrong.',
   timestamp: 2019-05-19T07:55:46.643Z
  }
*/

Caso 2: Omitir propiedades del mensaje

const mhandler = require('mhandler')

//En la instaciación de clase:
const Mhandler =  new mhandler('en',{code: false})

/* retornará
  {
   status: 'error',
   name: 'InternalError',
   message: 'Algo salió mal.'
  }
*/

//O Configurando las propiedades en cualquier lugar del código.
const Mhandler =  new mhandler('en')

Mhandler.setMod({name:false, message: false})

/* retornará
  {
   status: 'error',
   code: 'E006'
  }
*/

Caso 3: Modificar propiedades del mensaje

Nota: Las modificaciones al objeto de mensaje funcionarán bien solamente junto a la plantilla de objeto de mensaje por defecto.

const Mhandler =  new mhandler('en',{
    code: 'errorCode',
    message: 'detail'
  })

/* retornará
  {
   status: 'error',
   errorCode: 'E005',
   name: 'InternalError',
   detail: 'Algo ha salido mal.'
  }
*/

//Or
const Mhandler = new mhandler()

Mhandler.setMod({name:false, status: 'type'})

/* retornará
  {
   type: 'error',
   code: 'E056',
   message: 'Algún error'
  }
*/

Caso 4: Errores personalizados

const Mhandler =  new mhandler('en')

MHandler.Custom('a085512', 'RandomError', 'Dang!')

/* retornará
  {
   status: 'error',
   code: 'a085512',
   name: 'RandomError',
   message: 'Dang'
  }
*/

Errores Disponibles

Errores de Validación

Errores de Recurso

Errores de Autenticación y Autorización

Errores de Servidor

Otro

Repositorio oficial de npm