Ruby API client to query LemonWay API
Add this line to your application's Gemfile:
gem 'lemonway'
And then execute:
$ bundle
Or install it yourself as:
$ gem install lemonway
Initialization : LemonWay::Client.new(api_params, client_config_options, &client_config_block)
api_options
(Hash) : mandatory hash where are passed the api param you want to reapeat every client query + the :wsdl
uri client_config_options
(Hash) : optional hash passed to savon to build its global options used by the client on every query client_config_block
(Block) : optional block to customize the savon client, takes a savon global options instance as param
client = LemonWay::Client.new({wsdl: "https://ws.lemonway.fr/[...]/service.asmx?wsdl"}, {ssl_verify_mode: :none})
#is the same as
client = LemonWay::Client.new wsdl: "https://ws.lemonway.fr/[...]/service.asmx?wsdl" do |opts|
opts.ssl_verify_mode(:none)
end
Query the API directly calling the method on the client instance : client.api_method_name(params, client_config_override, &client_block_config_override)
api_method_name
: Lemonway underscorized mehtod name (refer to the Lemonway doc or to client.operations
to list them params
(Hash) : params sent to the api, keys will be camelcased to comply with the SOAP convention used by Lemonwayclient_config_override
(Hash) : A hash of config transmitted to the savon client, which overrides the savon global config for the current api call onlyclient_block_config_override
(Block) : A Block taking a savon global options instance as param, to override the client call configuration optionsAPI response will always be a HashWithIndifferentAccess with underscored keys. Retrieve it as a result or pass a block to the API point method
# initialize the client
client = LemonWay::Client.new wsdl: "https://ws.lemonway.fr/mb/ioio/dev/directkit/service.asmx?wsdl",
wl_login: "test",
wl_pass: "test",
language: "fr",
version: "1.1",
wallet_ip: "127.0.0.1"
# list the available operations as follow :
resp = client.operations
=> [:register_wallet,
:update_wallet_details,
:update_wallet_status,
:register_iban,
:register_sdd_mandate,
:register_card,
...
]
# requests takes underscored names, and undescored (or camelcased) options, some hash with indifferent access are returned
resp = client.register_wallet, wallet: "123",
client_mail: "nico@las.com",
client_first_name: "nicolas",
client_last_name: "nicolas",
wallet_ip: "127.0.0.1"
=> {id: '123', lwid: "98098"}
resp[:id] == resp['id'] == '123'
Please refer to the Lemonway documentation for the complete list of methods and their parameters, or query https://ws.lemonway.fr/mb/[YOUR_LEMONWAY_NAME]/dev/directkitxml/service.asmx if Lemonway has provided you a development account
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)