feat(templates): impl Template.hasMultipleProtocols check

Signed-off-by: Dwi Siswanto <git@dw1.io>
This commit is contained in:
Dwi Siswanto 2024-10-22 05:37:22 +07:00
parent ec4a77e7c0
commit e945ac1e25
No known key found for this signature in database
GPG Key ID: 3BB198907EF44CED

View File

@ -147,6 +147,9 @@ func (template *Template) parseSelfContainedRequests() {
for _, request := range template.RequestsHeadless {
request.SelfContained = true
}
for _, request := range template.RequestsCode {
request.SelfContained = true
}
}
// Requests returns the total request count for the template
@ -178,11 +181,12 @@ func (template *Template) compileProtocolRequests(options *protocols.ExecutorOpt
var requests []protocols.Request
if template.hasMultipleRequests() {
// when multiple requests are present preserve the order of requests and protocols
// which is already done during unmarshalling
// when multiple requests or protocols are present, preserve the
// order of requests and protocols which already done during the
// unmarshalling process or else.
if template.hasMultipleRequests() || template.hasMultipleProtocols() {
requests = template.RequestsQueue
if options.Flow == "" {
if template.hasMultipleProtocols() && options.Flow == "" {
options.IsMultiProtocol = true
}
} else {
@ -430,6 +434,8 @@ func parseTemplate(data []byte, options protocols.ExecutorOptions) (*Template, e
return nil, err
}
template.parseSelfContainedRequests()
if template.Executer != nil {
if err := template.Executer.Compile(); err != nil {
return nil, errors.Wrap(err, "could not compile request")
@ -439,7 +445,6 @@ func parseTemplate(data []byte, options protocols.ExecutorOptions) (*Template, e
if template.Executer == nil && template.CompiledWorkflow == nil {
return nil, ErrCreateTemplateExecutor
}
template.parseSelfContainedRequests()
// check if the template is verified
// only valid templates can be verified or signed