UNPKG

@sap/xsodata

Version:

Expose data from a HANA database as OData V2 service with help of .xsodata files.

74 lines (65 loc) 2.18 kB
'use strict'; //Include var json = require('./../serializer/jsonSerializer'); var HttpError = require('./../utils/errors/httpError'); var configuration = require('./../configuration'); //Code // exports.process = function (context, error) { var content, serializer; context.logger.silly('error processor', 'process'); context.payloadType = 'application/json'; if (error.statusCode === 304) { // In case of "304 Not modified" message serializer = new json.JsonSerializer(context, 0, 304); serializer.flush(); return; } const stringStatusCode = error.statusCode ? ('' + error.statusCode) : null; if (context.mode === configuration.modes.development) { context.logger.debug('error processor', 'in dev mode'); content = { error: { code: stringStatusCode || '500', message: { lang: 'en-US', value: error.message, stack: error.stack } } }; } else { if (error instanceof HttpError) { content = { error: { code: stringStatusCode || '500', message: { lang: 'en-US', value: error.message } } }; if (error.innerError) { if (error.innerError instanceof Error) { content.error.innererror = error.innerError.message; } else { content.error.innererror = error.innerError; } } } else { content = { error: { code: '500', message: { lang: 'en-US', value: error.message } } }; } } context.logger.silly('error processor', 'content' + JSON.stringify(content)); serializer = new json.JsonSerializer(context, 65536, content.error.code); serializer.write(content); serializer.flush(); };