in api/workflow.go [37:52]
func (s *workflowImpl) Execute(ctx context.Context, req *proto.ExecuteRequest) (*proto.ExecuteResponse, error) {
var rsp proto.ExecuteResponse
var param flow.WorkflowParam
if err := gconv.Struct(req, ¶m); err != nil {
return nil, err
}
if len(req.InstanceId) != 0 {
return &rsp, s.engine.Transition(ctx, ¶m)
}
r, err := s.engine.Start(ctx, ¶m)
if err != nil {
return nil, err
}
rsp.InstanceId = r
return &rsp, nil
}