@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
68 lines • 3.6 kB
JavaScript
// import { saveErrorToLog } from './Logging';
import { makeid } from '../../../../logic/Strings/guids';
import { FPSResultCommonErrors } from '../../../../types/fps-returns/common/IFPSResultStatus';
import { convertHelpfullError } from '../../../../logic/Errors/friendly';
import { check4This, Check4 } from '../../../../logic/Links/CheckSearch';
import { saveErrorToLog } from '../../../../restAPIs/logging/Errors/saveErrorToLog';
import { GeneralErrorLog } from '../../../../restAPIs/logging/interfaces/constants';
export function checkItemsResults(fpsSpService, itemsInput, traceString, alertMe, consoleLog) {
//Clean up the raw error and return a human readable result
itemsInput.refreshId = makeid(7);
itemsInput.loaded = itemsInput.status === 'Success' ? true : false;
if (!itemsInput.fpsContentType)
itemsInput.fpsContentType = [];
if (!itemsInput.unifiedPerformanceOps)
itemsInput.unifiedPerformanceOps = { fetch: {} };
if (FPSResultCommonErrors.indexOf(itemsInput.e) > -1) {
itemsInput.errorInfo = {
errObj: itemsInput.e,
friendly: itemsInput.e,
result: itemsInput.e,
returnMess: itemsInput.e,
};
}
else if (itemsInput.e) {
const errorInput = { e: itemsInput.e, alertMe: alertMe, consoleLog: consoleLog, traceString: traceString ? traceString : 'fps-library-v2: checkItemsResults ~ 15', logErrors: true };
itemsInput.errorInput = errorInput;
const errorInfo = convertHelpfullError(errorInput);
/**
* https://github.com/fps-solutions/HubCon/issues/117
* Added this to be sure it's available as with other errors found in this check
*/
if (!errorInfo.errObj)
errorInfo.errObj = itemsInput.e;
if (!itemsInput.statusText) {
const matches = ['Field', 'List', 'User', 'Group', 'Access', 'Site', 'Web',].filter((partial) => errorInfo.friendly.toLowerCase().includes(partial.toLowerCase()));
const statusText = matches.length > 0 ? `Possible ${matches[0]}??` : 'Unknown';
itemsInput.statusText = `${statusText} Error detected ~ 43`;
}
itemsInput.errorInfo = errorInfo;
if (errorInfo.friendly.toLocaleLowerCase().indexOf('access') > -1
|| errorInfo.friendly.toLocaleLowerCase().indexOf('unauthorized') > -1)
itemsInput.status = 'AccessDenied';
// 2025-05-02: Added this logic to prevent looping
// https://github.com/mikezimm/pivottiles7/issues/477
// https://github.com/fps-solutions/HubCon/issues/146
if (errorInfo.returnMess && errorInfo.returnMess.indexOf('Unexpected end of JSON input') > 0 && itemsInput.fetchAPI && itemsInput.fetchAPI.indexOf(GeneralErrorLog)) {
// Do not saveError - will cause more errors
}
else {
saveErrorToLog(itemsInput.errorInfo, errorInput, fpsSpService);
}
}
else if (itemsInput.status === 'Error') {
const err = itemsInput.e ? itemsInput.e : `${itemsInput.status} ${itemsInput.statusNo} ${itemsInput.statusText}`;
itemsInput.errorInfo = {
errObj: err,
friendly: err,
result: err,
returnMess: err,
};
}
if (check4This(Check4.checkResults_Eq_true) === true) {
console.log(`fps-core-v7 COMPLETED: checkItemsResults ~ 25 -- ${traceString}`, itemsInput);
}
;
return itemsInput;
}
//# sourceMappingURL=CheckItemsResults.js.map