Some checks failed
SonarQube / SonarQube (push) Failing after 5m28s
E2e test on main branch push / server and client test (map[name:admin port:8080]) (push) Failing after 3m33s
Server and lib tests / Library test (js) (push) Failing after 1m36s
Server and lib tests / Library test (vue) (push) Successful in 2m24s
Server and lib tests / Web client test (admin) (push) Successful in 2m52s
Server and lib tests / Web client test (compose) (push) Successful in 3m23s
Server and lib tests / Web client test (discovery) (push) Successful in 2m49s
Server and lib tests / Web client test (one) (push) Successful in 2m52s
Server and lib tests / Web client test (privacy) (push) Successful in 2m44s
Server and lib tests / Web client test (reporter) (push) Successful in 2m56s
Server and lib tests / Web client test (workflow) (push) Successful in 3m0s
Server and lib tests / Server tests (push) Failing after 4m55s
E2e test on main branch push / notify-failure (push) Failing after 9s
Server and lib tests / Send matrix testing notification (push) Successful in 2s
Mark stale issues and pull requests / stale (push) Successful in 40s
1499 lines
32 KiB
Go
1499 lines
32 KiB
Go
package request
|
|
|
|
// This file is auto-generated.
|
|
//
|
|
// Changes to this file may cause incorrect behavior and will be lost if
|
|
// the code is regenerated.
|
|
//
|
|
// Definitions file that controls how this file is generated:
|
|
//
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/cortezaproject/corteza/server/automation/types"
|
|
"github.com/cortezaproject/corteza/server/pkg/expr"
|
|
"github.com/cortezaproject/corteza/server/pkg/label"
|
|
labelTypes "github.com/cortezaproject/corteza/server/pkg/label/types"
|
|
"github.com/cortezaproject/corteza/server/pkg/payload"
|
|
"github.com/go-chi/chi/v5"
|
|
"io"
|
|
"mime/multipart"
|
|
"net/http"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// dummy vars to prevent
|
|
// unused imports complain
|
|
var (
|
|
_ = chi.URLParam
|
|
_ = multipart.ErrMessageTooLarge
|
|
_ = payload.ParseUint64s
|
|
_ = strings.ToLower
|
|
_ = io.EOF
|
|
_ = fmt.Errorf
|
|
_ = json.NewEncoder
|
|
)
|
|
|
|
type (
|
|
// Internal API interface
|
|
WorkflowList struct {
|
|
// WorkflowID GET parameter
|
|
//
|
|
// Filter by workflow ID
|
|
WorkflowID []string
|
|
|
|
// Query GET parameter
|
|
//
|
|
// Filter workflows
|
|
Query string
|
|
|
|
// Deleted GET parameter
|
|
//
|
|
// Exclude (0, default), include (1) or return only (2) deleted workflows
|
|
Deleted uint
|
|
|
|
// Disabled GET parameter
|
|
//
|
|
// Exclude (0, default), include (1) or return only (2) disabled workflows
|
|
Disabled uint
|
|
|
|
// SubWorkflow GET parameter
|
|
//
|
|
// Exclude (0, default), include (1) or return only (2) sub workflows
|
|
SubWorkflow uint
|
|
|
|
// Labels GET parameter
|
|
//
|
|
// Labels
|
|
Labels map[string]labelTypes.LabelValue
|
|
|
|
// Limit GET parameter
|
|
//
|
|
// Limit
|
|
Limit uint
|
|
|
|
// IncTotal GET parameter
|
|
//
|
|
// Include total rows counter
|
|
IncTotal bool
|
|
|
|
// PageCursor GET parameter
|
|
//
|
|
// Page cursor
|
|
PageCursor string
|
|
|
|
// Sort GET parameter
|
|
//
|
|
// Sort items
|
|
Sort string
|
|
}
|
|
|
|
WorkflowCreate struct {
|
|
// Handle POST parameter
|
|
//
|
|
// Workflow name
|
|
Handle string
|
|
|
|
// Labels POST parameter
|
|
//
|
|
// Labels
|
|
Labels map[string]labelTypes.LabelValue
|
|
|
|
// Meta POST parameter
|
|
//
|
|
// Workflow meta data
|
|
Meta *types.WorkflowMeta
|
|
|
|
// Enabled POST parameter
|
|
//
|
|
// Is workflow enabled
|
|
Enabled bool
|
|
|
|
// Trace POST parameter
|
|
//
|
|
// Trace workflow execution
|
|
Trace bool
|
|
|
|
// KeepSessions POST parameter
|
|
//
|
|
// Keep old workflow sessions
|
|
KeepSessions int
|
|
|
|
// Scope POST parameter
|
|
//
|
|
// Workflow meta data
|
|
Scope *expr.Vars
|
|
|
|
// Steps POST parameter
|
|
//
|
|
// Workflow steps definition
|
|
Steps types.WorkflowStepSet
|
|
|
|
// Paths POST parameter
|
|
//
|
|
// Workflow step paths definition
|
|
Paths types.WorkflowPathSet
|
|
|
|
// RunAs POST parameter
|
|
//
|
|
// Is workflow enabled
|
|
RunAs uint64 `json:",string"`
|
|
|
|
// OwnedBy POST parameter
|
|
//
|
|
// Owner of the workflow
|
|
OwnedBy uint64 `json:",string"`
|
|
}
|
|
|
|
WorkflowUpdate struct {
|
|
// WorkflowID PATH parameter
|
|
//
|
|
// Workflow ID
|
|
WorkflowID uint64 `json:",string"`
|
|
|
|
// Handle POST parameter
|
|
//
|
|
// Workflow name
|
|
Handle string
|
|
|
|
// Labels POST parameter
|
|
//
|
|
// Labels
|
|
Labels map[string]labelTypes.LabelValue
|
|
|
|
// Meta POST parameter
|
|
//
|
|
// Workflow meta data
|
|
Meta *types.WorkflowMeta
|
|
|
|
// Enabled POST parameter
|
|
//
|
|
// Is workflow enabled
|
|
Enabled bool
|
|
|
|
// Trace POST parameter
|
|
//
|
|
// Trace workflow execution
|
|
Trace bool
|
|
|
|
// KeepSessions POST parameter
|
|
//
|
|
// Keep old workflow sessions
|
|
KeepSessions int
|
|
|
|
// Scope POST parameter
|
|
//
|
|
// Workflow meta data
|
|
Scope *expr.Vars
|
|
|
|
// Steps POST parameter
|
|
//
|
|
// Workflow steps definition
|
|
Steps types.WorkflowStepSet
|
|
|
|
// Paths POST parameter
|
|
//
|
|
// Workflow step paths definition
|
|
Paths types.WorkflowPathSet
|
|
|
|
// RunAs POST parameter
|
|
//
|
|
// Is workflow enabled
|
|
RunAs uint64 `json:",string"`
|
|
|
|
// OwnedBy POST parameter
|
|
//
|
|
// Owner of the workflow
|
|
OwnedBy uint64 `json:",string"`
|
|
|
|
// UpdatedAt POST parameter
|
|
//
|
|
// Last update (or creation) date
|
|
UpdatedAt *time.Time
|
|
}
|
|
|
|
WorkflowRead struct {
|
|
// WorkflowID PATH parameter
|
|
//
|
|
// Workflow ID
|
|
WorkflowID uint64 `json:",string"`
|
|
}
|
|
|
|
WorkflowDelete struct {
|
|
// WorkflowID PATH parameter
|
|
//
|
|
// Workflow ID
|
|
WorkflowID uint64 `json:",string"`
|
|
}
|
|
|
|
WorkflowUndelete struct {
|
|
// WorkflowID PATH parameter
|
|
//
|
|
// Workflow ID
|
|
WorkflowID uint64 `json:",string"`
|
|
}
|
|
|
|
WorkflowTest struct {
|
|
// WorkflowID PATH parameter
|
|
//
|
|
// Workflow ID
|
|
WorkflowID uint64 `json:",string"`
|
|
|
|
// Scope POST parameter
|
|
//
|
|
// Workflow meta data
|
|
Scope *expr.Vars
|
|
|
|
// RunAs POST parameter
|
|
//
|
|
// Is workflow enabled
|
|
RunAs bool
|
|
}
|
|
|
|
WorkflowExec struct {
|
|
// WorkflowID PATH parameter
|
|
//
|
|
// Workflow ID
|
|
WorkflowID uint64 `json:",string"`
|
|
|
|
// StepID POST parameter
|
|
//
|
|
// Step ID
|
|
StepID uint64 `json:",string"`
|
|
|
|
// Input POST parameter
|
|
//
|
|
// Input
|
|
Input *expr.Vars
|
|
|
|
// Trace POST parameter
|
|
//
|
|
// Trace workflow execution
|
|
Trace bool
|
|
|
|
// Wait POST parameter
|
|
//
|
|
// Wait for workflow to complete
|
|
Wait bool
|
|
|
|
// Async POST parameter
|
|
//
|
|
// Execute step and return immediately
|
|
Async bool
|
|
}
|
|
)
|
|
|
|
// NewWorkflowList request
|
|
func NewWorkflowList() *WorkflowList {
|
|
return &WorkflowList{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"workflowID": r.WorkflowID,
|
|
"query": r.Query,
|
|
"deleted": r.Deleted,
|
|
"disabled": r.Disabled,
|
|
"subWorkflow": r.SubWorkflow,
|
|
"labels": r.Labels,
|
|
"limit": r.Limit,
|
|
"incTotal": r.IncTotal,
|
|
"pageCursor": r.PageCursor,
|
|
"sort": r.Sort,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetWorkflowID() []string {
|
|
return r.WorkflowID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetQuery() string {
|
|
return r.Query
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetDeleted() uint {
|
|
return r.Deleted
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetDisabled() uint {
|
|
return r.Disabled
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetSubWorkflow() uint {
|
|
return r.SubWorkflow
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetLabels() map[string]labelTypes.LabelValue {
|
|
return r.Labels
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetLimit() uint {
|
|
return r.Limit
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetIncTotal() bool {
|
|
return r.IncTotal
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetPageCursor() string {
|
|
return r.PageCursor
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowList) GetSort() string {
|
|
return r.Sort
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *WorkflowList) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
// GET params
|
|
tmp := req.URL.Query()
|
|
|
|
if val, ok := tmp["workflowID[]"]; ok {
|
|
r.WorkflowID, err = val, nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := tmp["workflowID"]; ok {
|
|
r.WorkflowID, err = val, nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["query"]; ok && len(val) > 0 {
|
|
r.Query, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["deleted"]; ok && len(val) > 0 {
|
|
r.Deleted, err = payload.ParseUint(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["disabled"]; ok && len(val) > 0 {
|
|
r.Disabled, err = payload.ParseUint(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["subWorkflow"]; ok && len(val) > 0 {
|
|
r.SubWorkflow, err = payload.ParseUint(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["labels[]"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := tmp["labels"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["limit"]; ok && len(val) > 0 {
|
|
r.Limit, err = payload.ParseUint(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["incTotal"]; ok && len(val) > 0 {
|
|
r.IncTotal, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["pageCursor"]; ok && len(val) > 0 {
|
|
r.PageCursor, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if val, ok := tmp["sort"]; ok && len(val) > 0 {
|
|
r.Sort, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewWorkflowCreate request
|
|
func NewWorkflowCreate() *WorkflowCreate {
|
|
return &WorkflowCreate{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"handle": r.Handle,
|
|
"labels": r.Labels,
|
|
"meta": r.Meta,
|
|
"enabled": r.Enabled,
|
|
"trace": r.Trace,
|
|
"keepSessions": r.KeepSessions,
|
|
"scope": r.Scope,
|
|
"steps": r.Steps,
|
|
"paths": r.Paths,
|
|
"runAs": r.RunAs,
|
|
"ownedBy": r.OwnedBy,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetHandle() string {
|
|
return r.Handle
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetLabels() map[string]labelTypes.LabelValue {
|
|
return r.Labels
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetMeta() *types.WorkflowMeta {
|
|
return r.Meta
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetEnabled() bool {
|
|
return r.Enabled
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetTrace() bool {
|
|
return r.Trace
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetKeepSessions() int {
|
|
return r.KeepSessions
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetScope() *expr.Vars {
|
|
return r.Scope
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetSteps() types.WorkflowStepSet {
|
|
return r.Steps
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetPaths() types.WorkflowPathSet {
|
|
return r.Paths
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetRunAs() uint64 {
|
|
return r.RunAs
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowCreate) GetOwnedBy() uint64 {
|
|
return r.OwnedBy
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *WorkflowCreate) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["handle"]; ok && len(val) > 0 {
|
|
r.Handle, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["labels[]"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["labels"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["meta[]"]; ok {
|
|
r.Meta, err = types.ParseWorkflowMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["meta"]; ok {
|
|
r.Meta, err = types.ParseWorkflowMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["enabled"]; ok && len(val) > 0 {
|
|
r.Enabled, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["trace"]; ok && len(val) > 0 {
|
|
r.Trace, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["keepSessions"]; ok && len(val) > 0 {
|
|
r.KeepSessions, err = payload.ParseInt(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["scope[]"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["scope"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["steps[]"]; ok {
|
|
r.Steps, err = types.ParseWorkflowStepSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["steps"]; ok {
|
|
r.Steps, err = types.ParseWorkflowStepSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["paths[]"]; ok {
|
|
r.Paths, err = types.ParseWorkflowPathSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["paths"]; ok {
|
|
r.Paths, err = types.ParseWorkflowPathSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["runAs"]; ok && len(val) > 0 {
|
|
r.RunAs, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["ownedBy"]; ok && len(val) > 0 {
|
|
r.OwnedBy, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["handle"]; ok && len(val) > 0 {
|
|
r.Handle, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["labels[]"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["labels"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["meta[]"]; ok {
|
|
r.Meta, err = types.ParseWorkflowMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["meta"]; ok {
|
|
r.Meta, err = types.ParseWorkflowMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["enabled"]; ok && len(val) > 0 {
|
|
r.Enabled, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["trace"]; ok && len(val) > 0 {
|
|
r.Trace, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["keepSessions"]; ok && len(val) > 0 {
|
|
r.KeepSessions, err = payload.ParseInt(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["scope[]"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["scope"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["steps[]"]; ok {
|
|
r.Steps, err = types.ParseWorkflowStepSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["steps"]; ok {
|
|
r.Steps, err = types.ParseWorkflowStepSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["paths[]"]; ok {
|
|
r.Paths, err = types.ParseWorkflowPathSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["paths"]; ok {
|
|
r.Paths, err = types.ParseWorkflowPathSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["runAs"]; ok && len(val) > 0 {
|
|
r.RunAs, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["ownedBy"]; ok && len(val) > 0 {
|
|
r.OwnedBy, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewWorkflowUpdate request
|
|
func NewWorkflowUpdate() *WorkflowUpdate {
|
|
return &WorkflowUpdate{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"workflowID": r.WorkflowID,
|
|
"handle": r.Handle,
|
|
"labels": r.Labels,
|
|
"meta": r.Meta,
|
|
"enabled": r.Enabled,
|
|
"trace": r.Trace,
|
|
"keepSessions": r.KeepSessions,
|
|
"scope": r.Scope,
|
|
"steps": r.Steps,
|
|
"paths": r.Paths,
|
|
"runAs": r.RunAs,
|
|
"ownedBy": r.OwnedBy,
|
|
"updatedAt": r.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetWorkflowID() uint64 {
|
|
return r.WorkflowID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetHandle() string {
|
|
return r.Handle
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetLabels() map[string]labelTypes.LabelValue {
|
|
return r.Labels
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetMeta() *types.WorkflowMeta {
|
|
return r.Meta
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetEnabled() bool {
|
|
return r.Enabled
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetTrace() bool {
|
|
return r.Trace
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetKeepSessions() int {
|
|
return r.KeepSessions
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetScope() *expr.Vars {
|
|
return r.Scope
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetSteps() types.WorkflowStepSet {
|
|
return r.Steps
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetPaths() types.WorkflowPathSet {
|
|
return r.Paths
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetRunAs() uint64 {
|
|
return r.RunAs
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetOwnedBy() uint64 {
|
|
return r.OwnedBy
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUpdate) GetUpdatedAt() *time.Time {
|
|
return r.UpdatedAt
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *WorkflowUpdate) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["handle"]; ok && len(val) > 0 {
|
|
r.Handle, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["labels[]"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["labels"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["meta[]"]; ok {
|
|
r.Meta, err = types.ParseWorkflowMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["meta"]; ok {
|
|
r.Meta, err = types.ParseWorkflowMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["enabled"]; ok && len(val) > 0 {
|
|
r.Enabled, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["trace"]; ok && len(val) > 0 {
|
|
r.Trace, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["keepSessions"]; ok && len(val) > 0 {
|
|
r.KeepSessions, err = payload.ParseInt(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["scope[]"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["scope"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["steps[]"]; ok {
|
|
r.Steps, err = types.ParseWorkflowStepSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["steps"]; ok {
|
|
r.Steps, err = types.ParseWorkflowStepSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["paths[]"]; ok {
|
|
r.Paths, err = types.ParseWorkflowPathSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["paths"]; ok {
|
|
r.Paths, err = types.ParseWorkflowPathSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["runAs"]; ok && len(val) > 0 {
|
|
r.RunAs, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["ownedBy"]; ok && len(val) > 0 {
|
|
r.OwnedBy, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["updatedAt"]; ok && len(val) > 0 {
|
|
r.UpdatedAt, err = payload.ParseISODatePtrWithErr(val[0])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["handle"]; ok && len(val) > 0 {
|
|
r.Handle, err = val[0], nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["labels[]"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["labels"]; ok {
|
|
r.Labels, err = label.ParseStrings(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["meta[]"]; ok {
|
|
r.Meta, err = types.ParseWorkflowMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["meta"]; ok {
|
|
r.Meta, err = types.ParseWorkflowMeta(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["enabled"]; ok && len(val) > 0 {
|
|
r.Enabled, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["trace"]; ok && len(val) > 0 {
|
|
r.Trace, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["keepSessions"]; ok && len(val) > 0 {
|
|
r.KeepSessions, err = payload.ParseInt(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["scope[]"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["scope"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["steps[]"]; ok {
|
|
r.Steps, err = types.ParseWorkflowStepSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["steps"]; ok {
|
|
r.Steps, err = types.ParseWorkflowStepSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["paths[]"]; ok {
|
|
r.Paths, err = types.ParseWorkflowPathSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["paths"]; ok {
|
|
r.Paths, err = types.ParseWorkflowPathSet(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["runAs"]; ok && len(val) > 0 {
|
|
r.RunAs, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["ownedBy"]; ok && len(val) > 0 {
|
|
r.OwnedBy, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["updatedAt"]; ok && len(val) > 0 {
|
|
r.UpdatedAt, err = payload.ParseISODatePtrWithErr(val[0])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "workflowID")
|
|
r.WorkflowID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewWorkflowRead request
|
|
func NewWorkflowRead() *WorkflowRead {
|
|
return &WorkflowRead{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowRead) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"workflowID": r.WorkflowID,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowRead) GetWorkflowID() uint64 {
|
|
return r.WorkflowID
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *WorkflowRead) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "workflowID")
|
|
r.WorkflowID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewWorkflowDelete request
|
|
func NewWorkflowDelete() *WorkflowDelete {
|
|
return &WorkflowDelete{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowDelete) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"workflowID": r.WorkflowID,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowDelete) GetWorkflowID() uint64 {
|
|
return r.WorkflowID
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *WorkflowDelete) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "workflowID")
|
|
r.WorkflowID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewWorkflowUndelete request
|
|
func NewWorkflowUndelete() *WorkflowUndelete {
|
|
return &WorkflowUndelete{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUndelete) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"workflowID": r.WorkflowID,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowUndelete) GetWorkflowID() uint64 {
|
|
return r.WorkflowID
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *WorkflowUndelete) Fill(req *http.Request) (err error) {
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "workflowID")
|
|
r.WorkflowID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewWorkflowTest request
|
|
func NewWorkflowTest() *WorkflowTest {
|
|
return &WorkflowTest{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowTest) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"workflowID": r.WorkflowID,
|
|
"scope": r.Scope,
|
|
"runAs": r.RunAs,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowTest) GetWorkflowID() uint64 {
|
|
return r.WorkflowID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowTest) GetScope() *expr.Vars {
|
|
return r.Scope
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowTest) GetRunAs() bool {
|
|
return r.RunAs
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *WorkflowTest) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["scope[]"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["scope"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["runAs"]; ok && len(val) > 0 {
|
|
r.RunAs, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["scope[]"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["scope"]; ok {
|
|
r.Scope, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["runAs"]; ok && len(val) > 0 {
|
|
r.RunAs, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "workflowID")
|
|
r.WorkflowID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// NewWorkflowExec request
|
|
func NewWorkflowExec() *WorkflowExec {
|
|
return &WorkflowExec{}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowExec) Auditable() map[string]interface{} {
|
|
return map[string]interface{}{
|
|
"workflowID": r.WorkflowID,
|
|
"stepID": r.StepID,
|
|
"input": r.Input,
|
|
"trace": r.Trace,
|
|
"wait": r.Wait,
|
|
"async": r.Async,
|
|
}
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowExec) GetWorkflowID() uint64 {
|
|
return r.WorkflowID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowExec) GetStepID() uint64 {
|
|
return r.StepID
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowExec) GetInput() *expr.Vars {
|
|
return r.Input
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowExec) GetTrace() bool {
|
|
return r.Trace
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowExec) GetWait() bool {
|
|
return r.Wait
|
|
}
|
|
|
|
// Auditable returns all auditable/loggable parameters
|
|
func (r WorkflowExec) GetAsync() bool {
|
|
return r.Async
|
|
}
|
|
|
|
// Fill processes request and fills internal variables
|
|
func (r *WorkflowExec) Fill(req *http.Request) (err error) {
|
|
|
|
if strings.HasPrefix(strings.ToLower(req.Header.Get("content-type")), "application/json") {
|
|
err = json.NewDecoder(req.Body).Decode(r)
|
|
|
|
switch {
|
|
case err == io.EOF:
|
|
err = nil
|
|
case err != nil:
|
|
return fmt.Errorf("error parsing http request body: %w", err)
|
|
}
|
|
}
|
|
|
|
{
|
|
// Caching 32MB to memory, the rest to disk
|
|
if err = req.ParseMultipartForm(32 << 20); err != nil && err != http.ErrNotMultipart {
|
|
return err
|
|
} else if err == nil {
|
|
// Multipart params
|
|
|
|
if val, ok := req.MultipartForm.Value["stepID"]; ok && len(val) > 0 {
|
|
r.StepID, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["input[]"]; ok {
|
|
r.Input, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.MultipartForm.Value["input"]; ok {
|
|
r.Input, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["trace"]; ok && len(val) > 0 {
|
|
r.Trace, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["wait"]; ok && len(val) > 0 {
|
|
r.Wait, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.MultipartForm.Value["async"]; ok && len(val) > 0 {
|
|
r.Async, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
if err = req.ParseForm(); err != nil {
|
|
return err
|
|
}
|
|
|
|
// POST params
|
|
|
|
if val, ok := req.Form["stepID"]; ok && len(val) > 0 {
|
|
r.StepID, err = payload.ParseUint64(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["input[]"]; ok {
|
|
r.Input, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
} else if val, ok := req.Form["input"]; ok {
|
|
r.Input, err = types.ParseWorkflowVariables(val)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["trace"]; ok && len(val) > 0 {
|
|
r.Trace, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["wait"]; ok && len(val) > 0 {
|
|
r.Wait, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
if val, ok := req.Form["async"]; ok && len(val) > 0 {
|
|
r.Async, err = payload.ParseBool(val[0]), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
var val string
|
|
// path params
|
|
|
|
val = chi.URLParam(req, "workflowID")
|
|
r.WorkflowID, err = payload.ParseUint64(val), nil
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
}
|
|
|
|
return err
|
|
}
|