Class: Workato::Connector::Sdk::Operation
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#execute(settings = nil, input = {}, extended_input_schema = [], extended_output_schema = [], continue = {}, &block) ⇒ T.untyped
-
#extended_schema(settings = nil, config_fields = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
-
#initialize(operation: {}, methods: {}, connection: Connection.new, streams: ProhibitedStreams.new, object_definitions: nil) ⇒ void
constructor
-
#input_fields(settings = nil, config_fields = {}) ⇒ SorbetTypes::OperationSchema
-
#output_fields(settings = nil, config_fields = {}) ⇒ SorbetTypes::OperationSchema?
-
#sample_output(settings = nil, input = {}) ⇒ T.untyped
-
#summarize_input(input = {}) ⇒ T.untyped
-
#summarize_output(output = {}) ⇒ T.untyped
#execution_context, #recipe_id!
Methods included from Dsl::Error
#error
Methods included from Dsl::HTTP
#copy, #delete, #get, #head, #move, #options, #parallel, #patch, #post, #put
Methods included from Dsl::AWS
#aws
#blank, #clear, #decrypt, #encrypt, #null, #puts, #skip, #sleep, #workato
#workato_schema
#lookup
#account_property
Methods included from Dsl::Time
#now, #today
Constructor Details
#initialize(operation: {}, methods: {}, connection: Connection.new, streams: ProhibitedStreams.new, object_definitions: nil) ⇒ void
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/workato/connector/sdk/operation.rb', line 65
def initialize(operation: {}, methods: {}, connection: Connection.new, streams: ProhibitedStreams.new,
object_definitions: nil)
@operation = T.let(
Utilities::HashWithIndifferentAccess.wrap(operation),
ActiveSupport::HashWithIndifferentAccess
)
@_methods = T.let(
Utilities::HashWithIndifferentAccess.wrap(methods),
ActiveSupport::HashWithIndifferentAccess
)
@connection = T.let(connection, Connection)
@streams = T.let(streams, Streams)
@object_definitions = T.let(object_definitions, T.nilable(ObjectDefinitions))
end
|
Instance Attribute Details
54
55
56
|
# File 'lib/workato/connector/sdk/operation.rb', line 54
def streams
@streams
end
|
Instance Method Details
#execute(settings = nil, input = {}, extended_input_schema = [], extended_output_schema = [], continue = {}, &block) ⇒ T.untyped
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/workato/connector/sdk/operation.rb', line 92
def execute(settings = nil, input = {}, extended_input_schema = [], extended_output_schema = [], continue = {},
&block)
connection.merge_settings!(settings) if settings
request_or_result = T.unsafe(self).instance_exec(
connection.settings,
Utilities::HashWithIndifferentAccess.wrap(input),
Array.wrap(extended_input_schema).map { |i| Utilities::HashWithIndifferentAccess.wrap(i) },
Array.wrap(extended_output_schema).map { |i| Utilities::HashWithIndifferentAccess.wrap(i) },
Utilities::HashWithIndifferentAccess.wrap(continue),
&block
)
result = resolve_request(request_or_result)
try_convert_to_hash_with_indifferent_access(result)
end
|
#extended_schema(settings = nil, config_fields = {}) ⇒ ActiveSupport::HashWithIndifferentAccess
115
116
117
118
119
120
121
122
123
|
# File 'lib/workato/connector/sdk/operation.rb', line 115
def extended_schema(settings = nil, config_fields = {})
object_definitions_hash = object_definitions.lazy(settings, config_fields)
{
input: Array.wrap(
schema_fields(object_definitions_hash, settings, config_fields, &operation[:input_fields])
),
output: schema_fields(object_definitions_hash, settings, config_fields, &operation[:output_fields])
}.with_indifferent_access
end
|
133
134
135
136
|
# File 'lib/workato/connector/sdk/operation.rb', line 133
def input_fields(settings = nil, config_fields = {})
object_definitions_hash = object_definitions.lazy(settings, config_fields)
Array.wrap(schema_fields(object_definitions_hash, settings, config_fields, &operation[:input_fields]))
end
|
146
147
148
149
150
151
152
|
# File 'lib/workato/connector/sdk/operation.rb', line 146
def output_fields(settings = nil, config_fields = {})
object_definitions_hash = object_definitions.lazy(settings, config_fields)
T.cast(
schema_fields(object_definitions_hash, settings, config_fields, &operation[:output_fields]),
T.nilable(SorbetTypes::OperationSchema)
)
end
|
#sample_output(settings = nil, input = {}) ⇒ T.untyped
172
173
174
|
# File 'lib/workato/connector/sdk/operation.rb', line 172
def sample_output(settings = nil, input = {})
execute(settings, input, &operation[:sample_output])
end
|
155
156
157
|
# File 'lib/workato/connector/sdk/operation.rb', line 155
def summarize_input(input = {})
summarize(input, operation[:summarize_input])
end
|
#summarize_output(output = {}) ⇒ T.untyped
160
161
162
|
# File 'lib/workato/connector/sdk/operation.rb', line 160
def summarize_output(output = {})
summarize(output, operation[:summarize_output])
end
|