Class: KintsugiSDK::SDKHooks::Hooks

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/kintsugi_sdk/sdk_hooks/hooks.rb

Instance Method Summary collapse

Constructor Details

#initializeHooks

Returns a new instance of Hooks.



15
16
17
18
19
20
# File 'lib/kintsugi_sdk/sdk_hooks/hooks.rb', line 15

def initialize
  @sdk_init_hooks = T.let([], T::Array[AbstractSDKHook])
  @before_request_hooks = T.let([], T::Array[AbstractSDKHook])
  @after_success_hooks = T.let([], T::Array[AbstractSDKHook])
  @after_error_hooks = T.let([], T::Array[AbstractSDKHook])
end

Instance Method Details

#after_error(error:, hook_ctx:, response:) ⇒ Object



86
87
88
89
90
91
92
# File 'lib/kintsugi_sdk/sdk_hooks/hooks.rb', line 86

def after_error(error:, hook_ctx:, response:)
  @after_error_hooks.each do |hook|
    response = hook.after_error(error: error, hook_ctx: hook_ctx, response: response)
  end

  response
end

#after_success(hook_ctx:, response:) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/kintsugi_sdk/sdk_hooks/hooks.rb', line 71

def after_success(hook_ctx:, response:)
  @after_success_hooks.each do |hook|
    response = hook.after_success(hook_ctx: hook_ctx, response: response)
  end

  response
end

#before_request(hook_ctx:, request:) ⇒ Object



57
58
59
60
61
62
63
# File 'lib/kintsugi_sdk/sdk_hooks/hooks.rb', line 57

def before_request(hook_ctx:, request:)
  @before_request_hooks.each do |hook|
    request = hook.before_request(hook_ctx: hook_ctx, request: request)
  end

  request
end

#register_after_error_hook(hook) ⇒ Object



38
39
40
# File 'lib/kintsugi_sdk/sdk_hooks/hooks.rb', line 38

def register_after_error_hook(hook)
  @after_error_hooks << hook
end

#register_after_success_hook(hook) ⇒ Object



33
34
35
# File 'lib/kintsugi_sdk/sdk_hooks/hooks.rb', line 33

def register_after_success_hook(hook)
  @after_success_hooks << hook
end

#register_before_request_hook(hook) ⇒ Object



28
29
30
# File 'lib/kintsugi_sdk/sdk_hooks/hooks.rb', line 28

def register_before_request_hook(hook)
  @before_request_hooks << hook
end

#register_sdk_init_hook(hook) ⇒ Object



23
24
25
# File 'lib/kintsugi_sdk/sdk_hooks/hooks.rb', line 23

def register_sdk_init_hook(hook)
  @sdk_init_hooks << hook
end

#sdk_init(config:) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/kintsugi_sdk/sdk_hooks/hooks.rb', line 43

def sdk_init(config:)
  @sdk_init_hooks.each do |hook|
    config = hook.sdk_init(config: config)
  end

  return config
end