Class: LosantRest::FlowVersions

Inherits:
Object
  • Object
show all
Defined in:
lib/losant_rest/flow_versions.rb

Overview

Class containing all the actions for the Flow Versions Resource

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ FlowVersions

Returns a new instance of FlowVersions.



30
31
32
# File 'lib/losant_rest/flow_versions.rb', line 30

def initialize(client)
  @client = client
end

Instance Method Details

#delete(params = {}) ⇒ Object

Delete flow versions

Authentication: The client must be configured with a valid api access token to call this action. The token must include at least one of the following scopes: all.Application, all.Organization, all.User, flowVersions.*, or flowVersions.delete.

Parameters:

  • string applicationId - ID associated with the application

  • string flowId - ID associated with the flow

  • hash options - Object containing flow version deletion options (api.losant.com/#/definitions/flowVersionsDeletePost)

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/losant_rest/flow_versions.rb', line 58

def delete(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("flowId is required") unless params.has_key?(:flowId)
  raise ArgumentError.new("options is required") unless params.has_key?(:options)

  body = params[:options] if params.has_key?(:options)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/flows/#{params[:flowId]}/versions/delete"

  @client.request(
    method: :post,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#get(params = {}) ⇒ Object

Returns the flow versions for a flow

Authentication: The client must be configured with a valid api access token to call this action. The token must include at least one of the following scopes: all.Application, all.Application.read, all.Organization, all.Organization.read, all.User, all.User.read, flowVersions.*, or flowVersions.get.

Parameters:

  • string applicationId - ID associated with the application

  • string flowId - ID associated with the flow

  • string sortField - Field to sort the results by. Accepted values are: version, id, creationDate, lastUpdated

  • string sortDirection - Direction to sort the results by. Accepted values are: asc, desc

  • string page - Which page of results to return

  • string perPage - How many items to return per page

  • string filterField - Field to filter the results by. Blank or not provided means no filtering. Accepted values are: version

  • string filter - Filter to apply against the filtered field. Supports globbing. Blank or not provided means no filtering.

  • string includeCustomNodes - If the result of the request should also include the details of any custom nodes referenced by the returned workflows

  • hash query - Workflow filter JSON object which overrides the filterField and filter parameters. (api.losant.com/#/definitions/advancedFlowVersionQuery)

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/losant_rest/flow_versions.rb', line 114

def get(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("flowId is required") unless params.has_key?(:flowId)

  query_params[:sortField] = params[:sortField] if params.has_key?(:sortField)
  query_params[:sortDirection] = params[:sortDirection] if params.has_key?(:sortDirection)
  query_params[:page] = params[:page] if params.has_key?(:page)
  query_params[:perPage] = params[:perPage] if params.has_key?(:perPage)
  query_params[:filterField] = params[:filterField] if params.has_key?(:filterField)
  query_params[:filter] = params[:filter] if params.has_key?(:filter)
  query_params[:includeCustomNodes] = params[:includeCustomNodes] if params.has_key?(:includeCustomNodes)
  query_params[:query] = params[:query] if params.has_key?(:query)
  query_params[:query] = JSON.dump(query_params[:query]) if query_params.has_key?(:query)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/flows/#{params[:flowId]}/versions"

  @client.request(
    method: :get,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#post(params = {}) ⇒ Object

Create or replace a flow version for a flow

Authentication: The client must be configured with a valid api access token to call this action. The token must include at least one of the following scopes: all.Application, all.Organization, all.User, flowVersions.*, or flowVersions.post.

Parameters:

  • string applicationId - ID associated with the application

  • string flowId - ID associated with the flow

  • hash flowVersion - New flow version information (api.losant.com/#/definitions/flowVersionPost)

  • string includeCustomNodes - If the result of the request should also include the details of any custom nodes referenced by the returned workflows

  • string allowReplacement - Allow replacement of an existing flow version with same version name

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/losant_rest/flow_versions.rb', line 172

def post(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("flowId is required") unless params.has_key?(:flowId)
  raise ArgumentError.new("flowVersion is required") unless params.has_key?(:flowVersion)

  body = params[:flowVersion] if params.has_key?(:flowVersion)
  query_params[:includeCustomNodes] = params[:includeCustomNodes] if params.has_key?(:includeCustomNodes)
  query_params[:allowReplacement] = params[:allowReplacement] if params.has_key?(:allowReplacement)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/flows/#{params[:flowId]}/versions"

  @client.request(
    method: :post,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end