Class: Crystil::API::Invocation
- Defined in:
- lib/crystil/api/invocation.rb,
sig/crystil/api/invocation.rbs
Overview
API client for workflow invocation operations
Instance Method Summary collapse
-
#attribution(parent_id:, parent_name: nil, subsidiary_id: nil, subsidiary_name: nil) ⇒ self
Set attribution filter for summary queries Returns self for method chaining.
- #format_date(date) ⇒ String
-
#initialize(api_url, api_key, timeout) ⇒ Invocation
constructor
A new instance of Invocation.
-
#summary(workflow_uuid, date_start:, date_end: nil) ⇒ Object
Get invocation summary for a workflow.
Methods inherited from Base
#build_request, #delete, #get, #handle_response, #parse_json_response, #post, #put, #request
Constructor Details
#initialize(api_url, api_key, timeout) ⇒ Invocation
Returns a new instance of Invocation.
9 10 11 12 |
# File 'lib/crystil/api/invocation.rb', line 9 def initialize(api_url, api_key, timeout) super @attribution = nil end |
Instance Method Details
#attribution(parent_id:, parent_name: nil, subsidiary_id: nil, subsidiary_name: nil) ⇒ self
Set attribution filter for summary queries Returns self for method chaining
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/crystil/api/invocation.rb', line 16 def attribution(parent_id:, parent_name: nil, subsidiary_id: nil, subsidiary_name: nil) @attribution = { parent: { id: parent_id } } @attribution[:parent][:name] = parent_name if parent_name if subsidiary_id @attribution[:subsidiary] = { id: subsidiary_id } @attribution[:subsidiary][:name] = subsidiary_name if subsidiary_name end self end |
#format_date(date) ⇒ String
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/crystil/api/invocation.rb', line 47 def format_date(date) return date if date.is_a?(String) # Convert to midnight (beginning of day) in ISO8601 format if date.respond_to?(:to_date) date.to_date.to_time.iso8601 else date.iso8601 end end |
#summary(workflow_uuid, date_start:, date_end: nil) ⇒ Object
Get invocation summary for a workflow
31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/crystil/api/invocation.rb', line 31 def summary(workflow_uuid, date_start:, date_end: nil) body = { date: { start: format_date(date_start) } } body[:date][:end] = format_date(date_end) if date_end body[:attribution] = @attribution if @attribution post("/workflow/#{workflow_uuid}/invocation/summary", body) end |