class PromisePay::Callback

Constants

ENDPOINT

Attributes

description[R]
enabled[R]
endpoint[R]
id[R]
method[R]
object_type[R]
url[R]

Public Class Methods

create(options = {}) click to toggle source
# File lib/promise_pay/callback.rb, line 27
def self.create(options = {})
  new(options.merge(method: :post)).execute
end
delete(options = {}) click to toggle source
# File lib/promise_pay/callback.rb, line 23
def self.delete(options = {})
  new(options.merge(method: :delete)).execute
end
index(options = {}) click to toggle source
# File lib/promise_pay/callback.rb, line 19
def self.index(options = {})
  new(options.merge(method: :get)).execute
end
new(options = {}) click to toggle source
# File lib/promise_pay/callback.rb, line 31
def initialize(options = {})
  @id           = options.fetch(:id) { nil }
  @url          = options.fetch(:url) { "" }
  @description  = options.fetch(:description) { "" }
  @object_type  = options.fetch(:object_type) { "" }
  @enabled      = options.fetch(:enabled) { true }

  @method       = options.fetch(:method)
  @endpoint     = ENDPOINT + @id.to_s
end

Public Instance Methods

execute() click to toggle source
# File lib/promise_pay/callback.rb, line 42
def execute
  assign_instance_variables(result)
  self
end

Private Instance Methods

payload() click to toggle source
# File lib/promise_pay/callback.rb, line 65
def payload
  {
    description:  description,
    enabled:      enabled,
    object_type:  object_type,
    url:          url,
  }
end
request() click to toggle source
# File lib/promise_pay/callback.rb, line 57
def request
  PromisePay::Request.new(
    path: endpoint,
    method: method,
    payload: payload
  )
end
response() click to toggle source
# File lib/promise_pay/callback.rb, line 53
def response
  request.execute
end
result() click to toggle source
# File lib/promise_pay/callback.rb, line 49
def result
  JSON.parse(response)
end