refactor(representations): extract deterministic data-resolution helpers for representation flow (Slice R6, behaviour-preserving) Related work items: #22441
94 lines
2.1 KiB
JavaScript
94 lines
2.1 KiB
JavaScript
import { JSONPath as jsonpath } from "jsonpath-plus";
|
|
|
|
export const resolveInitialCaseDataSources = ({
|
|
hasState,
|
|
isEditState,
|
|
currentType,
|
|
myRepresentations,
|
|
searchDetailsObj,
|
|
searchResultsObj,
|
|
watchedCasesDetails
|
|
}) => {
|
|
if (hasState) {
|
|
return {
|
|
"caseDetailsSource": isEditState
|
|
? myRepresentations
|
|
: searchDetailsObj,
|
|
"caseResultsSource": isEditState
|
|
? myRepresentations
|
|
: searchResultsObj
|
|
};
|
|
}
|
|
|
|
return {
|
|
"caseDetailsSource":
|
|
currentType === "watchedCases"
|
|
? watchedCasesDetails
|
|
: searchDetailsObj,
|
|
"caseResultsSource":
|
|
currentType === "watchedCases"
|
|
? watchedCasesDetails
|
|
: searchResultsObj
|
|
};
|
|
};
|
|
|
|
export const findResultsObjForCurrentReference = ({
|
|
currentReference,
|
|
caseResultsSource
|
|
}) => {
|
|
return jsonpath({
|
|
path: `$..[?(@ && @.ticketnumber=="${currentReference}")]`,
|
|
"json": caseResultsSource,
|
|
"eval": true
|
|
})[0];
|
|
};
|
|
|
|
export const findDetailsObjForView = ({
|
|
hasState,
|
|
isEditState,
|
|
queryCreated,
|
|
ticketnumber,
|
|
caseDetailsSource
|
|
}) => {
|
|
if (hasState && isEditState) {
|
|
return jsonpath({
|
|
path: `$..[?(@ && @.repfile_name=="${queryCreated}")]`,
|
|
"json": caseDetailsSource,
|
|
"eval": true
|
|
})[0];
|
|
}
|
|
|
|
return jsonpath({
|
|
path: `$..[?(@ && @.ticketnumber=="${ticketnumber}")]`,
|
|
"json": caseDetailsSource,
|
|
"eval": true
|
|
})[0];
|
|
};
|
|
|
|
export const resolveSubmitCaseDetailsSource = ({
|
|
isEditState,
|
|
currentType,
|
|
myRepresentations,
|
|
watchedCasesDetails,
|
|
searchDetailsObj
|
|
}) => {
|
|
if (isEditState) {
|
|
return myRepresentations;
|
|
}
|
|
|
|
return currentType === "watchedCases"
|
|
? watchedCasesDetails
|
|
: searchDetailsObj;
|
|
};
|
|
|
|
export const findDetailsObjForSubmit = ({
|
|
ticketnumber,
|
|
caseDetailsSource
|
|
}) => {
|
|
return jsonpath({
|
|
path: `$..[?(@ && @.ticketnumber=="${ticketnumber}")]`,
|
|
"json": caseDetailsSource,
|
|
"eval": true
|
|
})[0];
|
|
};
|