@vertikalx/vtx-backend-client
Version:
GraphQL API generated client for VTX
123 lines • 3.83 kB
JavaScript
;
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