Skip to content

Commit

Permalink
Updated decomposer with condition logic
Browse files Browse the repository at this point in the history
  • Loading branch information
MaartendeKruijf committed May 3, 2024
1 parent 64bd0b7 commit cde5d9b
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions internal/decomposer/decomposer.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (

"soarca/internal/executors"
"soarca/internal/executors/action"
"soarca/internal/executors/condition"
"soarca/internal/guid"
"soarca/internal/reporter"
"soarca/logger"
Expand Down Expand Up @@ -52,6 +53,7 @@ type Decomposer struct {
details ExecutionDetails
actionExecutor action.IExecuter
playbookActionExecutor executors.IPlaybookExecuter
conditionExecutor condition.IExecuter
guid guid.IGuid
reporter reporter.IWorkflowReporter
}
Expand Down Expand Up @@ -155,6 +157,15 @@ func (decomposer *Decomposer) ExecuteStep(step cacao.Step, scopeVariables cacao.
return decomposer.actionExecutor.Execute(metadata, actionMetadata)
case cacao.StepTypePlaybookAction:
return decomposer.playbookActionExecutor.Execute(metadata, step, variables)
case cacao.StepTypeIfCondition:
stepId, branch, err := decomposer.conditionExecutor.Execute(metadata, step)
if err != nil {
return cacao.NewVariables(), err
}
if branch {
return decomposer.ExecuteBranch(stepId, variables)
}
return variables, nil
default:
// NOTE: This currently silently handles unknown step types. Should we return an error instead?
return cacao.NewVariables(), nil
Expand Down

0 comments on commit cde5d9b

Please sign in to comment.