fix(frontend): Frontend kan nu omgaan met foutieve leerpaden
- Geen of meerdere startnodes - Transities naar een leerobject dat niet voorkomt - Transities naar een leerobject dat meer dan één keer voorkomt.
This commit is contained in:
parent
bb359b6c48
commit
a047558f95
2 changed files with 19 additions and 18 deletions
|
@ -34,24 +34,21 @@ export class LearningPathNode {
|
|||
version: dto.version,
|
||||
language: dto.language,
|
||||
transitions: dto.transitions.map((transDto) => {
|
||||
const nextNodeDto = otherNodes.filter(
|
||||
const nextNodeDto = otherNodes.find(
|
||||
(it) =>
|
||||
it.learningobject_hruid === transDto.next.hruid &&
|
||||
it.language === transDto.next.language &&
|
||||
it.version === transDto.next.version,
|
||||
);
|
||||
if (nextNodeDto.length !== 1) {
|
||||
throw new Error(
|
||||
`Invalid learning path! There is a transition to node` +
|
||||
`${transDto.next.hruid}/${transDto.next.language}/${transDto.next.version}, but there are` +
|
||||
`${nextNodeDto.length} such nodes.`,
|
||||
);
|
||||
if (nextNodeDto) {
|
||||
return {
|
||||
next: LearningPathNode.fromDTOAndOtherNodes(nextNodeDto, otherNodes),
|
||||
default: transDto.default,
|
||||
};
|
||||
} else {
|
||||
return undefined
|
||||
}
|
||||
return {
|
||||
next: LearningPathNode.fromDTOAndOtherNodes(nextNodeDto[0], otherNodes),
|
||||
default: transDto.default,
|
||||
};
|
||||
}),
|
||||
}).filter(it => it !== undefined),
|
||||
createdAt: new Date(dto.created_at),
|
||||
updatedAt: new Date(dto.updatedAt),
|
||||
done: dto.done,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue