Skip to content

Commit

Permalink
Add support for auto capture and additional PSD2 fields
Browse files Browse the repository at this point in the history
  • Loading branch information
processout-machine committed Jun 6, 2019
1 parent a95a73b commit 081ef8a
Show file tree
Hide file tree
Showing 16 changed files with 701 additions and 33 deletions.
7 changes: 7 additions & 0 deletions Dockerfile
@@ -0,0 +1,7 @@
FROM ruby:2

RUN gem install rspec

WORKDIR /ruby

COPY . .
4 changes: 3 additions & 1 deletion Makefile
@@ -1,2 +1,4 @@
.PHONY: test
test:
rspec
docker build -t fountain-ruby .
docker run -ti --rm fountain-ruby rspec
18 changes: 18 additions & 0 deletions lib/processout.rb
Expand Up @@ -15,6 +15,9 @@
require "processout/gateway"
require "processout/gateway_configuration"
require "processout/invoice"
require "processout/invoice_risk"
require "processout/invoice_device"
require "processout/invoice_shipping"
require "processout/invoice_detail"
require "processout/customer_action"
require "processout/dunning_action"
Expand Down Expand Up @@ -119,6 +122,21 @@ def invoice(data = {})
obj = Invoice.new(self, data)
end

# Create a new InvoiceRisk instance
def invoice_risk(data = {})
obj = InvoiceRisk.new(self, data)
end

# Create a new InvoiceDevice instance
def invoice_device(data = {})
obj = InvoiceDevice.new(self, data)
end

# Create a new InvoiceShipping instance
def invoice_shipping(data = {})
obj = InvoiceShipping.new(self, data)
end

# Create a new InvoiceDetail instance
def invoice_detail(data = {})
obj = InvoiceDetail.new(self, data)
Expand Down
20 changes: 20 additions & 0 deletions lib/processout/card.rb
Expand Up @@ -12,6 +12,8 @@ class Card
attr_reader :project_id
attr_reader :token
attr_reader :scheme
attr_reader :co_scheme
attr_reader :preferred_scheme
attr_reader :type
attr_reader :bank_name
attr_reader :brand
Expand Down Expand Up @@ -80,6 +82,14 @@ def scheme=(val)
@scheme = val
end

def co_scheme=(val)
@co_scheme = val
end

def preferred_scheme=(val)
@preferred_scheme = val
end

def type=(val)
@type = val
end
Expand Down Expand Up @@ -181,6 +191,8 @@ def initialize(client, data = {})
self.project_id = data.fetch(:project_id, nil)
self.token = data.fetch(:token, nil)
self.scheme = data.fetch(:scheme, nil)
self.co_scheme = data.fetch(:co_scheme, nil)
self.preferred_scheme = data.fetch(:preferred_scheme, nil)
self.type = data.fetch(:type, nil)
self.bank_name = data.fetch(:bank_name, nil)
self.brand = data.fetch(:brand, nil)
Expand Down Expand Up @@ -233,6 +245,12 @@ def fill_with_data(data)
if data.include? "scheme"
self.scheme = data["scheme"]
end
if data.include? "co_scheme"
self.co_scheme = data["co_scheme"]
end
if data.include? "preferred_scheme"
self.preferred_scheme = data["preferred_scheme"]
end
if data.include? "type"
self.type = data["type"]
end
Expand Down Expand Up @@ -315,6 +333,8 @@ def prefill(data)
self.project_id = data.fetch(:project_id, self.project_id)
self.token = data.fetch(:token, self.token)
self.scheme = data.fetch(:scheme, self.scheme)
self.co_scheme = data.fetch(:co_scheme, self.co_scheme)
self.preferred_scheme = data.fetch(:preferred_scheme, self.preferred_scheme)
self.type = data.fetch(:type, self.type)
self.bank_name = data.fetch(:bank_name, self.bank_name)
self.brand = data.fetch(:brand, self.brand)
Expand Down
24 changes: 24 additions & 0 deletions lib/processout/customer.rb
Expand Up @@ -29,6 +29,8 @@ class Customer
attr_reader :ip_address
attr_reader :phone_number
attr_reader :legal_document
attr_reader :sex
attr_reader :is_business
attr_reader :metadata
attr_reader :sandbox
attr_reader :created_at
Expand Down Expand Up @@ -194,6 +196,14 @@ def legal_document=(val)
@legal_document = val
end

def sex=(val)
@sex = val
end

def is_business=(val)
@is_business = val
end

def metadata=(val)
@metadata = val
end
Expand Down Expand Up @@ -236,6 +246,8 @@ def initialize(client, data = {})
self.ip_address = data.fetch(:ip_address, nil)
self.phone_number = data.fetch(:phone_number, nil)
self.legal_document = data.fetch(:legal_document, nil)
self.sex = data.fetch(:sex, nil)
self.is_business = data.fetch(:is_business, nil)
self.metadata = data.fetch(:metadata, nil)
self.sandbox = data.fetch(:sandbox, nil)
self.created_at = data.fetch(:created_at, nil)
Expand Down Expand Up @@ -320,6 +332,12 @@ def fill_with_data(data)
if data.include? "legal_document"
self.legal_document = data["legal_document"]
end
if data.include? "sex"
self.sex = data["sex"]
end
if data.include? "is_business"
self.is_business = data["is_business"]
end
if data.include? "metadata"
self.metadata = data["metadata"]
end
Expand Down Expand Up @@ -362,6 +380,8 @@ def prefill(data)
self.ip_address = data.fetch(:ip_address, self.ip_address)
self.phone_number = data.fetch(:phone_number, self.phone_number)
self.legal_document = data.fetch(:legal_document, self.legal_document)
self.sex = data.fetch(:sex, self.sex)
self.is_business = data.fetch(:is_business, self.is_business)
self.metadata = data.fetch(:metadata, self.metadata)
self.sandbox = data.fetch(:sandbox, self.sandbox)
self.created_at = data.fetch(:created_at, self.created_at)
Expand Down Expand Up @@ -581,6 +601,8 @@ def create(options = {})
"ip_address" => @ip_address,
"phone_number" => @phone_number,
"legal_document" => @legal_document,
"is_business" => @is_business,
"sex" => @sex,
"metadata" => @metadata,
"id" => @id
}
Expand Down Expand Up @@ -650,6 +672,8 @@ def save(options = {})
"ip_address" => @ip_address,
"phone_number" => @phone_number,
"legal_document" => @legal_document,
"is_business" => @is_business,
"sex" => @sex,
"metadata" => @metadata
}

Expand Down
31 changes: 31 additions & 0 deletions lib/processout/event.rb
Expand Up @@ -215,6 +215,37 @@ def find(event_id, options = {})



return_values[0]
end

# Find an event by the Resource ID that generated it.
# Params:
# +resource_id+:: Resource ID
# +options+:: +Hash+ of options
def find_by_resource_id(resource_id, options = {})
self.prefill(options)

request = Request.new(@client)
path = "/events/by_resource_id/" + CGI.escape(resource_id) + ""
data = {

}

response = Response.new(request.get(path, data, options))
return_values = Array.new

a = Array.new
body = response.body
for v in body['events']
tmp = Event.new(@client)
tmp.fill_with_data(v)
a.push(tmp)
end

return_values.push(a)



return_values[0]
end

Expand Down
30 changes: 4 additions & 26 deletions lib/processout/gateway_configuration.rb
Expand Up @@ -13,8 +13,6 @@ class GatewayConfiguration
attr_reader :gateway
attr_reader :gateway_id
attr_reader :name
attr_reader :fee_fixed
attr_reader :fee_percentage
attr_reader :default_currency
attr_reader :enabled
attr_reader :public_keys
Expand Down Expand Up @@ -70,14 +68,6 @@ def name=(val)
@name = val
end

def fee_fixed=(val)
@fee_fixed = val
end

def fee_percentage=(val)
@fee_percentage = val
end

def default_currency=(val)
@default_currency = val
end
Expand Down Expand Up @@ -112,8 +102,6 @@ def initialize(client, data = {})
self.gateway = data.fetch(:gateway, nil)
self.gateway_id = data.fetch(:gateway_id, nil)
self.name = data.fetch(:name, nil)
self.fee_fixed = data.fetch(:fee_fixed, nil)
self.fee_percentage = data.fetch(:fee_percentage, nil)
self.default_currency = data.fetch(:default_currency, nil)
self.enabled = data.fetch(:enabled, nil)
self.public_keys = data.fetch(:public_keys, nil)
Expand Down Expand Up @@ -152,12 +140,6 @@ def fill_with_data(data)
if data.include? "name"
self.name = data["name"]
end
if data.include? "fee_fixed"
self.fee_fixed = data["fee_fixed"]
end
if data.include? "fee_percentage"
self.fee_percentage = data["fee_percentage"]
end
if data.include? "default_currency"
self.default_currency = data["default_currency"]
end
Expand Down Expand Up @@ -190,8 +172,6 @@ def prefill(data)
self.gateway = data.fetch(:gateway, self.gateway)
self.gateway_id = data.fetch(:gateway_id, self.gateway_id)
self.name = data.fetch(:name, self.name)
self.fee_fixed = data.fetch(:fee_fixed, self.fee_fixed)
self.fee_percentage = data.fetch(:fee_percentage, self.fee_percentage)
self.default_currency = data.fetch(:default_currency, self.default_currency)
self.enabled = data.fetch(:enabled, self.enabled)
self.public_keys = data.fetch(:public_keys, self.public_keys)
Expand Down Expand Up @@ -271,10 +251,9 @@ def save(options = {})
"id" => @id,
"name" => @name,
"enabled" => @enabled,
"fee_fixed" => @fee_fixed,
"fee_percentage" => @fee_percentage,
"default_currency" => @default_currency,
"settings" => options.fetch(:settings, nil)
"settings" => options.fetch(:settings, nil),
"sub_accounts_enabled" => options.fetch(:sub_accounts_enabled, nil)
}

response = Response.new(request.put(path, data, options))
Expand Down Expand Up @@ -325,10 +304,9 @@ def create(gateway_name, options = {})
"id" => @id,
"name" => @name,
"enabled" => @enabled,
"fee_fixed" => @fee_fixed,
"fee_percentage" => @fee_percentage,
"default_currency" => @default_currency,
"settings" => options.fetch(:settings, nil)
"settings" => options.fetch(:settings, nil),
"sub_accounts_enabled" => options.fetch(:sub_accounts_enabled, nil)
}

response = Response.new(request.post(path, data, options))
Expand Down

0 comments on commit 081ef8a

Please sign in to comment.