@gp_jcisneros/errors
Version:
Error handling utilities for GreenPay microservices and validation middleware
91 lines (74 loc) • 2.96 kB
JavaScript
const { ResponseHandler, HttpError, ValidationError } = require('../src/index');
// Ejemplo 1: Handler básico
const basicHandler = ResponseHandler.createHandler();
// Ejemplo 2: Handler personalizado para transacciones
const transactionHandler = ResponseHandler.createTransactionHandler();
// Ejemplo 3: Handler personalizado para CRUD
const crudHandler = ResponseHandler.createCRUDHandler();
// Ejemplo 4: Handler con opciones personalizadas
// eslint-disable-next-line no-unused-vars
const customHandler = ResponseHandler.createHandler({
defaultSuccessMessage: 'Operación exitosa',
defaultErrorMessage: 'Error en la operación',
includeStack: true
});
// Ejemplo 5: Handler específico para transacciones bancarias
const bankTransactionHandler = ResponseHandler.createCustomHandler(
'Transacción bancaria procesada correctamente',
'Error en la transacción bancaria',
{ includeStack: false }
);
// Simulación de Express response
const mockResponse = {
status: (code) => ({
json: (data) => {
console.log('Response:', JSON.stringify(data, null, 2));
return { statusCode: code, data };
}
})
};
// Ejemplo de uso
console.log('=== Ejemplo de uso de ResponseHandler ===\n');
// 1. Respuesta exitosa básica
console.log('1. Respuesta exitosa básica:');
basicHandler(mockResponse, { id: 123, name: 'Test' });
// 2. Respuesta exitosa de transacción
console.log('\n2. Respuesta exitosa de transacción:');
transactionHandler(mockResponse, { transactionId: 'TXN-123', amount: 100.50 });
// 3. Respuesta de error con HttpError
console.log('\n3. Respuesta de error con HttpError:');
const httpError = HttpError.badRequest('Datos inválidos');
transactionHandler(mockResponse, null, httpError);
// 4. Respuesta de error con ValidationError
console.log('\n4. Respuesta de error con ValidationError:');
const validationError = ValidationError.required('email');
crudHandler(mockResponse, null, validationError);
// 5. Respuesta de error genérico
console.log('\n5. Respuesta de error genérico:');
const genericError = new Error('Error interno del servidor');
bankTransactionHandler(mockResponse, null, genericError);
// 6. Uso directo de la clase
console.log('\n6. Uso directo de la clase:');
const handler = new ResponseHandler({
defaultSuccessMessage: 'Operación personalizada exitosa',
defaultErrorMessage: 'Error personalizado'
});
handler.success(mockResponse, { custom: 'data' }, 'Mensaje personalizado');
handler.error(mockResponse, new Error('Error personalizado'), { context: 'data' });
// 7. Handler con mensajes personalizados
console.log('\n7. Handler con mensajes personalizados:');
const customMessageHandler = ResponseHandler.createHandler();
customMessageHandler(
mockResponse,
{ result: 'success' },
null,
'Operación completada con éxito',
null
);
customMessageHandler(
mockResponse,
null,
new Error('Error específico'),
null,
'Mensaje de error personalizado'
);