Skip to content

Commit

Permalink
Fixed file calculated name should not be calculated when node value i…
Browse files Browse the repository at this point in the history
…s empty (#255)

Co-authored-by: Stefano Ricci <[email protected]>
  • Loading branch information
SteRiccio and SteRiccio authored Nov 29, 2024
1 parent 7eb9088 commit a9e3a3b
Showing 1 changed file with 36 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,28 +75,8 @@ const updateFileNamesInNodes = (params: {
const nodes = NodePointers.getNodesFromNodePointers({ record, nodePointers: [nodePointer] })

nodes.forEach((node) => {
try {
// evaluate file name expression
const fileNameCalculated = calculateFileName({ user, survey, record: updateResult.record, node })
const oldFileNameCalculated = NodeValues.getFileNameCalculated(node)
if (fileNameCalculated !== oldFileNameCalculated) {
const nodeUpdated = Nodes.mergeNodes(node, {
value: { [NodeValues.valuePropsFile.fileNameCalculated]: fileNameCalculated },
updated: true,
dateModified: Dates.nowFormattedForStorage(),
})
updateResult.addNode(nodeUpdated, { sideEffect })
}
} catch (error) {
const expressionsToEvaluate = [NodeDefExpressionFactory.createInstance({ expression: expressionToEvaluate })]
throwError({
error,
errorKey: 'record.updateSelfAndDependentsFileNames',
expressionType: SurveyDependencyType.fileName,
survey,
nodeDef,
expressionsToEvaluate,
})
if (!Nodes.isValueBlank(node)) {
updateFileNameInNode({ user, survey, updateResult, sideEffect, nodeDef: nodeDef as NodeDefFile, node })
}
})
}
Expand Down Expand Up @@ -129,3 +109,37 @@ export const updateSelfAndDependentsFileNames = (params: {

return updateResult
}

const updateFileNameInNode = (params: {
user: User
survey: Survey
updateResult: RecordUpdateResult
sideEffect: boolean
nodeDef: NodeDefFile
node: Node
}) => {
const { user, survey, updateResult, sideEffect, node, nodeDef } = params
const expressionToEvaluate = NodeDefs.getFileNameExpression(nodeDef)
try {
const fileNameCalculated = calculateFileName({ user, survey, record: updateResult.record, node })
const oldFileNameCalculated = NodeValues.getFileNameCalculated(node)
if (fileNameCalculated !== oldFileNameCalculated) {
const nodeUpdated = Nodes.mergeNodes(node, {
value: { [NodeValues.valuePropsFile.fileNameCalculated]: fileNameCalculated },
updated: true,
dateModified: Dates.nowFormattedForStorage(),
})
updateResult.addNode(nodeUpdated, { sideEffect })
}
} catch (error) {
const expressionsToEvaluate = [NodeDefExpressionFactory.createInstance({ expression: expressionToEvaluate! })]
throwError({
error,
errorKey: 'record.updateSelfAndDependentsFileNames',
expressionType: SurveyDependencyType.fileName,
survey,
nodeDef,
expressionsToEvaluate,
})
}
}

0 comments on commit a9e3a3b

Please sign in to comment.