ACube API - Rails [WIP]
Wrapper library around the ACube API for ruby on rails. Quickly set up resources to manage invoices.
Usage
This will copy over the initializer file to your rails application and the necessary migrations:
$ bin/rails g a_cube:install
In the initializer file you have to set at the very least the following:
config.username = "your-login-email"
config.password = "your-login-password"
config.invoice_endpoint = ENV.fetch('ACUBE_INVOICE_ENDPOINT', "https://api-sandbox.acubeapi.com")
config.common_endpoint = ENV.fetch('ACUBE_COMMON_ENDPOINT', "https://common-sandbox.api.acubeapi.com")For a complete list of configuration options, see the initializer file.
You have to designate two models to be used that will serve as the supplier/consumer contacts.
These will take care of the mapping between your application and the ACube API.
include ACube::Support::Supplier
as_supplier do |s|
s.first_name = "..."
s.last_name = :last_name
endString means constant value, symbol means method name on the model that will get called when the invoice is created.
include ACube::Support::Consumer
as_custoemr do |c|
c.first_name = "..."
c.last_name = :last_name
endFor a full list of supported attributes, see the relevant file.
The last model is the one that will be associated with the invoices, so the payment model per say.
class Payment < ApplicationRecord
has_one_invoice :invoice
as_transaction do |t|
t.amount = :amount
t.currency = "EUR"
t.payment_date = :created_at
end
endThe has_one_invoice method will create the association between the payment and the invoice.
The as_transaction method will create the mapping between the payment and the invoice.
The last step is to actually publish the invoice to the ACube API.
# In your controller somewhere
def create
@payment = Payment.new(payment_params)
supplier = Supplier.new(...)
consumer = Consumer.new(...)
if @payment.save
@payment.publish_invoice(supplier, consumer, :FPR12)
# ...
end
endInstallation
Add this line to your application's Gemfile:
gem "acube-rails", require: "acube"And then execute:
$ bundleOr install it yourself as:
$ gem install acube-railsContributing
Contribution directions go here.
License
The gem is available as open source under the terms of the MIT License.