Class: LoopsSdk::Workflows

Inherits:
Base
  • Object
show all
Defined in:
lib/loops_sdk/workflows.rb

Class Method Summary collapse

Class Method Details

.add_branch(workflow_id:, node_id:, expected_revision_id:) ⇒ Object



90
91
92
93
# File 'lib/loops_sdk/workflows.rb', line 90

def add_branch(workflow_id:, node_id:, expected_revision_id:)
  body = { expectedRevisionId: expected_revision_id }
  make_request(method: :post, path: "v1/workflows/#{workflow_id}/nodes/#{node_id}/add-branch", body: body)
end

.change_mailing_list(workflow_id:, expected_revision_id:, mailing_list_id:, dry_run: nil, queued_contact_policy: nil) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/loops_sdk/workflows.rb', line 34

def change_mailing_list(workflow_id:, expected_revision_id:, mailing_list_id:, dry_run: nil, queued_contact_policy: nil)
  body = {
    expectedRevisionId: expected_revision_id,
    mailingListId: mailing_list_id,
    dryRun: dry_run,
    queuedContactPolicy: queued_contact_policy
  }.compact
  # expectedRevisionId and mailingListId may be null; always include them
  body[:expectedRevisionId] = expected_revision_id
  body[:mailingListId] = mailing_list_id
  make_request(method: :post, path: "v1/workflows/#{workflow_id}/mailing-list", body: body)
end

.create(name:, description: nil, mailing_list_id: nil) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/loops_sdk/workflows.rb', line 10

def create(name:, description: nil, mailing_list_id: nil)
  body = {
    name: name,
    description: description,
    mailingListId: mailing_list_id
  }.compact
  make_request(method: :post, path: "v1/workflows", body: body)
end

.create_node(workflow_id:, expected_revision_id:, insert_mode:, node_type_name:, from_node_id: nil, to_node_id: nil, before_node_id: nil) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/loops_sdk/workflows.rb', line 51

def create_node(
  workflow_id:,
  expected_revision_id:,
  insert_mode:,
  node_type_name:,
  from_node_id: nil,
  to_node_id: nil,
  before_node_id: nil
)
  body = {
    expectedRevisionId: expected_revision_id,
    insertMode: insert_mode,
    nodeTypeName: node_type_name,
    fromNodeId: from_node_id,
    toNodeId: to_node_id,
    beforeNodeId: before_node_id
  }.compact
  body[:expectedRevisionId] = expected_revision_id
  make_request(method: :post, path: "v1/workflows/#{workflow_id}/nodes", body: body)
end

.delete_node(workflow_id:, node_id:, expected_revision_id:, dry_run: nil, queued_contact_policy: nil) ⇒ Object



80
81
82
83
84
85
86
87
88
# File 'lib/loops_sdk/workflows.rb', line 80

def delete_node(workflow_id:, node_id:, expected_revision_id:, dry_run: nil, queued_contact_policy: nil)
  body = {
    expectedRevisionId: expected_revision_id,
    dryRun: dry_run,
    queuedContactPolicy: queued_contact_policy
  }.compact
  body[:expectedRevisionId] = expected_revision_id
  make_request(method: :delete, path: "v1/workflows/#{workflow_id}/nodes/#{node_id}", body: body)
end

.delete_node_recursive(workflow_id:, node_id:, expected_revision_id:, dry_run: nil, queued_contact_policy: nil) ⇒ Object



95
96
97
98
99
100
101
102
103
# File 'lib/loops_sdk/workflows.rb', line 95

def delete_node_recursive(workflow_id:, node_id:, expected_revision_id:, dry_run: nil, queued_contact_policy: nil)
  body = {
    expectedRevisionId: expected_revision_id,
    dryRun: dry_run,
    queuedContactPolicy: queued_contact_policy
  }.compact
  body[:expectedRevisionId] = expected_revision_id
  make_request(method: :delete, path: "v1/workflows/#{workflow_id}/nodes/#{node_id}/recursive", body: body)
end

.get(workflow_id:) ⇒ Object



19
20
21
# File 'lib/loops_sdk/workflows.rb', line 19

def get(workflow_id:)
  make_request(method: :get, path: "v1/workflows/#{workflow_id}")
end

.get_node(workflow_id:, node_id:) ⇒ Object



47
48
49
# File 'lib/loops_sdk/workflows.rb', line 47

def get_node(workflow_id:, node_id:)
  make_request(method: :get, path: "v1/workflows/#{workflow_id}/nodes/#{node_id}")
end

.list(perPage: 20, cursor: nil) ⇒ Object



6
7
8
# File 'lib/loops_sdk/workflows.rb', line 6

def list(perPage: 20, cursor: nil)
  make_request(method: :get, path: "v1/workflows", params: { perPage: perPage, cursor: cursor })
end

.update(workflow_id:, expected_revision_id:, name: nil, description: nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
# File 'lib/loops_sdk/workflows.rb', line 23

def update(workflow_id:, expected_revision_id:, name: nil, description: nil)
  body = {
    expectedRevisionId: expected_revision_id,
    name: name,
    description: description
  }.compact
  # expectedRevisionId may be null for older workflows; always include it
  body[:expectedRevisionId] = expected_revision_id
  make_request(method: :post, path: "v1/workflows/#{workflow_id}", body: body)
end

.update_node(workflow_id:, node_id:, expected_revision_id:, payload:) ⇒ Object



72
73
74
75
76
77
78
# File 'lib/loops_sdk/workflows.rb', line 72

def update_node(workflow_id:, node_id:, expected_revision_id:, payload:)
  body = {
    expectedRevisionId: expected_revision_id,
    payload: payload
  }
  make_request(method: :post, path: "v1/workflows/#{workflow_id}/nodes/#{node_id}", body: body)
end