Class: AppBridge::App

Inherits:
Object
  • Object
show all
Defined in:
lib/app_bridge/app.rb,
sig/app_bridge.rbs

Overview

An app that can be used to fetch events and execute actions.

Instance Method Summary collapse

Constructor Details

#initialize(component_path, environment_variables: {}) ⇒ App

Returns a new instance of App.

Parameters:

  • (String)


9
10
11
12
13
14
15
# File 'lib/app_bridge/app.rb', line 9

def initialize(component_path, environment_variables: {})
  @component_path = component_path
  @environment_variables = environment_variables
  _rust_initialize(component_path, environment_variables)
rescue StandardError
  raise InternalError, "Incompatible WASM file version"
end

Instance Method Details

#actionsArray[String]

Returns:

  • (Array[String])


10
# File 'sig/app_bridge.rbs', line 10

def actions: () -> Array[String]

#connection_configObject



46
47
48
49
50
# File 'lib/app_bridge/app.rb', line 46

def connection_config
  json = _rust_connection_config
  ConnectionConfigValidator.validate!(json)
  json
end

#connections_supported?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/app_bridge/app.rb', line 42

def connections_supported?
  _rust_connections_supported?
end

#execute_action(context) ⇒ ActionResponse

Parameters:

Returns:



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/app_bridge/app.rb', line 26

def execute_action(context)
  response = request_action_with_timeout(context)

  # Process files: find file-output fields in schema and replace with blob IDs
  processed_output = process_files(response.serialized_output, context)

  validate_action_response_size!(processed_output)

  # Return new response with processed output
  response.with_output(processed_output)
end

#fetch_events(context) ⇒ TriggerResponse

Parameters:

Returns:



17
18
19
20
21
22
23
24
# File 'lib/app_bridge/app.rb', line 17

def fetch_events(context)
  response = request_events_with_timeout(context)

  validate_number_of_events!(response.events)
  validate_store_size!(response.store)

  response
end

#timeout_secondsObject



38
39
40
# File 'lib/app_bridge/app.rb', line 38

def timeout_seconds
  30 # seconds
end

#triggersArray[String]

Returns:

  • (Array[String])


8
# File 'sig/app_bridge.rbs', line 8

def triggers: () -> Array[String]