in internal/dal/workflow.go [357:383]
func (w *workflowDALImpl) buildTaskRelation(workflow *pmodel.Workflow,
tasks []*model.WorkflowTask) []*model.WorkflowTaskRelation {
if workflow == nil || len(workflow.States) == 0 {
return nil
}
var taskIDs = make(map[string]string)
for _, task := range tasks {
taskIDs[task.TaskName] = task.TaskID
}
var taskRelations []*model.WorkflowTaskRelation
for _, state := range workflow.States {
if workflow.Start.StateName == state.GetName() {
taskRelations = append(taskRelations, w.doBuildStartTaskRelation(workflow, state, taskIDs))
}
switch state.GetType() {
case pmodel.StateTypeOperation:
fallthrough
case pmodel.StateTypeEvent:
taskRelations = append(taskRelations, w.doBuildTaskRelation(workflow, state, taskIDs))
case pmodel.StateTypeSwitch:
taskRelations = append(taskRelations, w.doBuildSwitchTaskRelation(workflow, state, taskIDs)...)
default:
log.Errorf("buildTaskRelation=not support type=%s", state.GetType())
}
}
return taskRelations
}