Class: A2A::Operation::CreateTaskPushNotificationConfig

Inherits:
Object
  • Object
show all
Includes:
Executable
Defined in:
lib/a2a/operation/create_task_push_notification_config.rb

Constant Summary collapse

METHOD =
"CreateTaskPushNotificationConfig"

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Executable

#execute

Constructor Details

#initialize(config, tenant: nil) ⇒ CreateTaskPushNotificationConfig

Returns a new instance of CreateTaskPushNotificationConfig.



12
13
14
15
# File 'lib/a2a/operation/create_task_push_notification_config.rb', line 12

def initialize(config, tenant: nil)
  @config = config.is_a?(PushNotification::Config) ? config : PushNotification::Config.from_h(config)
  @tenant = tenant
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



10
11
12
# File 'lib/a2a/operation/create_task_push_notification_config.rb', line 10

def config
  @config
end

#tenantObject (readonly)

Returns the value of attribute tenant.



10
11
12
# File 'lib/a2a/operation/create_task_push_notification_config.rb', line 10

def tenant
  @tenant
end

Instance Method Details

#execute_http_json(protocol) ⇒ Object



24
25
26
27
28
# File 'lib/a2a/operation/create_task_push_notification_config.rb', line 24

def execute_http_json(protocol)
  PushNotification::Config.from_h(
    protocol.post("/tasks/#{config.task_id}/pushNotificationConfigs", body: config.to_h)
  )
end

#execute_json_rpc(protocol) ⇒ Object



17
18
19
20
21
22
# File 'lib/a2a/operation/create_task_push_notification_config.rb', line 17

def execute_json_rpc(protocol)
  raw = protocol.post(METHOD, params)
  raise A2A.from_json_rpc_error(raw["error"]) if raw["error"]

  PushNotification::Config.from_h(Hash(raw["result"]))
end

#paramsObject



30
31
32
33
34
35
# File 'lib/a2a/operation/create_task_push_notification_config.rb', line 30

def params
  {
    "pushNotificationConfig" => config.to_h,
    "tenant" => tenant
  }.compact
end