0.7.0 • Published 5 years ago

miller-handler v0.7.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

miller-handler v0.7.0

REST API Error Messages Generator - Module to automate and standardize error messages on REST API based services.

Implementation

You should specify the default language displayed en error messages directly on the class instantiation.

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

//Instantiation, english by default
const Mhandler =  new mhandler()

//Instantiation with Spanish as default language
const Mhandler =  new mhandler('es')

Note: Currently, the ​​available languages for displaying error messages are English ('en') and Spanish ('es').

Basic usage

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

/* will return
  {
   status: 'error',
   code: 'E08',
   name: 'UnavailableService',
   message: 'The method to the specified resource is currently unavailable.'
  }
*/

For example, if you want to display which fields are empty inside a certain incoming request.

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

/* will return
  {
   status: 'error',
   code: 'E01',
   name: 'RequiredEmptyField',
   message: 'Should complete the following field(s): firstName, lastName.'
  }
*/

Customization Options

You can modify, enable and disable every key of the object message, just like the following examples:

Case 1: Activating message timestamps

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
  }
*/

Case 2: Omit object message properties

const mhandler = require('mhandler')

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

/* will return
  {
   status: 'error',
   name: 'InternalError',
   message: 'Something went wrong.'
  }
*/

//Or setting the object properties wherever you want
const Mhandler =  new mhandler('en')

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

/* will return
  {
   status: 'error',
   code: 'E006'
  }
*/

Case 3: Modifying the object message properties

Note: the object message modifiers only works fine alongside the default object message template:

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

/* will return
  {
   status: 'error',
   errorCode: 'E005',
   name: 'InternalError',
   detail: 'Something went wrong.'
  }
*/

//Or
const Mhandler = new mhandler()

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

/* will return
  {
   type: 'error',
   code: 'E056',
   message: 'Some error'
  }
*/

Case 4: Using Custom Errors

const Mhandler =  new mhandler('en')

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

/* will return
  {
   status: 'error',
   code: 'a085512',
   name: 'RandomError',
   message: 'Dang!'
  }
*/

Available Errors

Validation Errors

Resource Errors

Authentication & Authorization Errors

Server Errors

Other

Official npm package