Class: K2ConnectRuby::K2Entity::K2Subscribe

Inherits:
Object
  • Object
show all
Includes:
K2ConnectRuby::K2Utilities
Defined in:
lib/k2-connect-ruby/k2_entity/k2_subscribe.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_token) ⇒ K2Subscribe

Initialize with access token

Raises:

  • (ArgumentError)


11
12
13
14
15
# File 'lib/k2-connect-ruby/k2_entity/k2_subscribe.rb', line 11

def initialize(access_token)
  raise ArgumentError, "Nil or Empty Access Token Given!" if access_token.blank?

  @access_token = access_token
end

Instance Attribute Details

#access_tokenObject

Returns the value of attribute access_token.



8
9
10
# File 'lib/k2-connect-ruby/k2_entity/k2_subscribe.rb', line 8

def access_token
  @access_token
end

#k2_response_bodyObject (readonly)

Returns the value of attribute k2_response_body.



7
8
9
# File 'lib/k2-connect-ruby/k2_entity/k2_subscribe.rb', line 7

def k2_response_body
  @k2_response_body
end

#location_urlObject (readonly)

Returns the value of attribute location_url.



7
8
9
# File 'lib/k2-connect-ruby/k2_entity/k2_subscribe.rb', line 7

def location_url
  @location_url
end

#webhook_secretObject

Returns the value of attribute webhook_secret.



8
9
10
# File 'lib/k2-connect-ruby/k2_entity/k2_subscribe.rb', line 8

def webhook_secret
  @webhook_secret
end

Instance Method Details

#query_resource_url(url) ⇒ Object

Query Specific Webhook URL



37
38
39
# File 'lib/k2-connect-ruby/k2_entity/k2_subscribe.rb', line 37

def query_resource_url(url)
  query_webhook(url)
end

#query_webhook(location_url = @location_url) ⇒ Object

Query Recent Webhook



31
32
33
34
# File 'lib/k2-connect-ruby/k2_entity/k2_subscribe.rb', line 31

def query_webhook(location_url = @location_url)
  result = K2ConnectRuby::K2Services::SendK2ConnectGetRequestService.call(access_token, location_url)
  @k2_response_body = result.data[:response_body]
end

#webhook_subscribe(params) ⇒ Object

Implemented a Case condition that minimises repetition

Raises:

  • (ArgumentError)


18
19
20
21
22
23
24
25
26
27
28
# File 'lib/k2-connect-ruby/k2_entity/k2_subscribe.rb', line 18

def webhook_subscribe(params)
  webhook_subscription_request = K2ConnectRuby::K2Entity::K2FinancialEntities::Webhook::WebhookSubscriptionRequest.new(params)
  raise(ArgumentError, webhook_subscription_request.errors.full_messages.first) unless webhook_subscription_request.valid?

  result = K2ConnectRuby::K2Services::SendK2ConnectPostRequestService.call(
    access_token,
    webhook_subscription_request.endpoint,
    webhook_subscription_request.request_body,
  )
  @location_url = result.data[:response_headers][:location]
end