UNPKG

scala-mensajes

Version:

Mensajes internos y externos estructurados.

81 lines (72 loc) 4.52 kB
/** * Crea un objeto json para el manejo iterno de mensajes * * @param {String} tipoMensaje ['exito', 'error'] * @param {String} titulo Titulo del mensaje * @param {String} mensaje Cuerpo del mensaje * @param {String} tipoError ['parametros', 'datos', 'baseDeDatos', 'configuracion', 'otros'] * @param {array} data Arreglo de objetos json con datos que se quieran retornar * */ const crearMensajeInterno = (tipoMensaje, titulo, mensaje, tipoError, data) => { if(data == null) data = [] switch (tipoMensaje) { case 'exito': return {'error':false, 'titulo': titulo, 'mensaje': mensaje, 'data': data} case 'error': return {'error':true, 'titulo': titulo, 'mensaje': mensaje, 'tipoError': tipoError, 'data': data} default: return {"error": true, "mensaje": "Error no especificado", 'tipoError': 'otros', 'data': []} } } /** * Crea la estrucutra de una respuesta al "front-end" * * @param {res} res Objeto response de la peticion a la ruta * @param {String} tipoRespuesta ['exito', 'errorCliente', 'errorServidor'] * @param {String} tipoError "tipoError" con 'errorCliente' son --> ['malaPeticion', 'noAutorizado', 'noEncontrado', 'metodoNoPermitido', 'tiempoDeEspera'] "tipoError" con 'errorServidor' son --> ['interno', 'noImplementado', 'noDisponible'] * @param {String} titulo * @param {String} mensaje * @param {array} data Arreglo de objetos json con datos que se quieran retornar */ const crearMensajeExterno = (res, tipoRespuesta, tipoError, titulo, mensaje, data) => { if(data == null) data = [] switch (tipoRespuesta) { case 'exito': return (res.status(200).json({'error':false, 'titulo': titulo, 'mensaje': mensaje, 'data': data})) case 'errorCliente': switch (tipoError) { case 'malaPeticion': return (res.status(400).json({'error':true, 'titulo': titulo, 'mensaje': mensaje, 'data': data}) ) case 'noAutorizado': return (res.status(401).json({'error':true, 'titulo': titulo, 'mensaje': mensaje, 'data': data}) ) case 'noEncontrado': return (res.status(404).json({'error':true, 'titulo': titulo, 'mensaje': mensaje, 'data': data}) ) case 'metodoNoPermitido': return (res.status(405).json({'error':true, 'titulo': titulo, 'mensaje': mensaje, 'data': data}) ) case 'tiempoDeEspera': return (res.status(408).json({'error':true, 'titulo': titulo, 'mensaje': mensaje, 'data': data}) ) default: return (res.status(400).json({'error':true, 'titulo': 'No definido', 'mensaje': 'No definido', 'data': []})) } case 'errorServidor': switch (tipoError) { case 'interno': return (res.status(500).json({'error':true, 'titulo': titulo, 'mensaje': mensaje, 'data': data}) ) case 'noImplementado': return (res.status(501).json({'error':true, 'titulo': titulo, 'mensaje': mensaje, 'data': data}) ) case 'noDisponible': return (res.status(503).json({'error':true, 'titulo': titulo, 'mensaje': mensaje, 'data': data}) ) default: return (res.status(500).json({'error':true, 'titulo': titulo, 'mensaje': mensaje, 'data': []}) ) } default: return (res.status(500).json({'error':true, 'titulo': 'No definido', 'mensaje': 'No definido', 'data': []})) } } module.exports = { crearMensajeExterno: crearMensajeExterno, crearMensajeInterno: crearMensajeInterno }