UNPKG

@vertikalx/vtx-backend-client

Version:

GraphQL API generated client for VTX

123 lines 3.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildResponse = buildResponse; exports.buildErrorResponse = buildErrorResponse; const vtx_core_common_1 = require("@vertikalx/vtx-core-common"); const Logger = { log: (msg) => { } }; function buildResponse(response, rootProperty, checker) { const retValue = {}; if (checker(response)) { try { retValue.data = response[rootProperty]; } catch (casterr) { Logger.log('Error trying to cast to return type'); retValue.error = { httpStatus: 500, code: vtx_core_common_1.VTX_ERRORS.VTX_SERVER_ERROR.code, message: "Error: Obtained incorrect data from Backend" }; retValue.rawErrors = [ { data: response, error: casterr } ]; } } else if (response?.errors) { if (Array.isArray(response.errors)) { retValue.rawErrors = response.errors; } else { retValue.rawErrors = [response.errors]; } } else if (response?.error) { if (Array.isArray(response.error)) { retValue.rawErrors = response.error; } else { retValue.rawErrors = [response.error]; } } else if (checker(response?.data)) { try { retValue.data = response.data[rootProperty]; } catch (casterr) { Logger.log('Error trying to cast to return type'); retValue.error = { httpStatus: 500, code: vtx_core_common_1.VTX_ERRORS.VTX_SERVER_ERROR.code, message: "Error: Obtained incorrect data from Backend" }; retValue.rawErrors = [ { data: response.data, error: casterr } ]; } } else { retValue.error = { httpStatus: 500, code: vtx_core_common_1.VTX_ERRORS.VTX_SERVER_ERROR.code, message: "Error: Obtained incorrect data from Backend" }; retValue.rawErrors = ['Error: Obtained incorrect data from Backend']; } Logger.log('buildResponse retValue:'); Logger.log(JSON.stringify(retValue, null, 2)); return retValue; } function buildErrorResponse(error) { const retValue = {}; if (error.errors) { if (Array.isArray(error.errors)) { retValue.rawErrors = error.errors; } else { retValue.rawErrors = [error.errors]; } } else { if (Array.isArray(error)) { retValue.rawErrors = error; } else { retValue.rawErrors = [error]; } } retValue.error = extractError(retValue.rawErrors); return retValue; } function extractError(rawErrors) { let retValue = { httpStatus: 500, code: vtx_core_common_1.VTX_ERRORS.VTX_SERVER_ERROR.code, message: vtx_core_common_1.VTX_ERRORS.VTX_SERVER_ERROR.description }; if (!rawErrors || rawErrors.length <= 0) { return retValue; } let theError = rawErrors.find(e => { if (e.extensions && e.extensions.type === "VtxError") { return true; } return false; }); if (theError) { retValue = { httpStatus: theError?.extensions?.httpStatus ?? 500, code: theError?.extensions?.vtxError?.code ?? vtx_core_common_1.VTX_ERRORS.VTX_SERVER_ERROR.code, message: theError?.extensions?.vtxError?.description ?? vtx_core_common_1.VTX_ERRORS.VTX_SERVER_ERROR.description }; } return retValue; } //# sourceMappingURL=response-builder.js.map