UNPKG

@gp_jcisneros/errors

Version:

Error handling utilities for GreenPay microservices and validation middleware

91 lines (74 loc) 2.96 kB
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' );