Skip to content

Commit

Permalink
Merge branch 'release/0.0.11'
Browse files Browse the repository at this point in the history
  • Loading branch information
kgathi2 committed May 30, 2015
2 parents 91e08b4 + 9bb4697 commit 9a05f88
Show file tree
Hide file tree
Showing 26 changed files with 400 additions and 191 deletions.
1 change: 0 additions & 1 deletion Guardfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
guard :minitest do
# with Minitest::Unit
watch(%r{^test/(.*)\/?(.*)_test\.rb$})
watch(%r{^test/support/(.*)\/?(.*)\.*$})
watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}#{m[2]}_test.rb" }
watch(%r{^test/test_helper\.rb$}) { 'test' }

Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Mpayer.setup do |config|
end

#Get all clients in your organisation
clients = Mpayer::Client.all(per:1,per_page:100)
clients = Mpayer::Client.all(page:1,per_page:100)

#Get one client in your organisation
clients = Mpayer::Client.find(123)
Expand All @@ -78,7 +78,7 @@ https://app.mpayer.co.ke/api/payables
All responses are objects and can be accessed with dot notation
e.g
```ruby
clients = Mpayer::Client.all(per:1,per_page:100)
clients = Mpayer::Client.all(page:1,per_page:100)
client = client.first
client.name #=> "CLark Kent"
```
Expand All @@ -97,9 +97,9 @@ client = Mpayer::Client.find(id:20284,fetch:false).account(account_id) # Get cli
client = Mpayer::Client.find(id:20284,fetch:false)
account = client.account(account_id) # Get clients account with id

client_accounts = Mpayer::Client.find(id:20284,fetch:false).accounts(per:1,per_page:100)
client_payables = Mpayer::Client.find(id:20284,fetch:false).payables(per:1,per_page:100)
client_transactions = Mpayer::Client.find(id:20284,fetch:false).transactions(account_id, per:1,per_page:100)
client_accounts = Mpayer::Client.find(id:20284,fetch:false).accounts(page:1,per_page:100)
client_payables = Mpayer::Client.find(id:20284,fetch:false).payables(page:1,per_page:100)
client_transactions = Mpayer::Client.find(id:20284,fetch:false).transactions(account_id, page:1,per_page:100)

```

Expand Down Expand Up @@ -195,9 +195,9 @@ Mpayer.setup do |config|
end

url = "/clients/all_clients"
Mpayer::Fetch.get(url,query:{per:per,per_page:per_page})
Mpayer::Fetch.post(url,body:{client:{name:'Kiki Lolo'}}.to_json)
Mpayer::Fetch.put(url,body:{client:{name:'Kiki Lolo'}}.to_json)
Mpayer::Fetch.get(url,query:{page:page,per_page:per_page})
Mpayer::Fetch.post(url,{client:{name:'Kiki Lolo'}})
Mpayer::Fetch.put(url,{client:{name:'Kiki Lolo'}})
Mpayer::Fetch.delete(url)

```
Expand Down
2 changes: 1 addition & 1 deletion bin/console
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env ruby

require "bundler/setup"
require "mpayer"
require "mpayer_ruby"

# You can add fixtures and/or initialization code here to make experimenting
# with your gem easier. You can also use a different console, if you like.
Expand Down
29 changes: 15 additions & 14 deletions lib/mpayer_ruby.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
require "mpayer_ruby/version"
require "mpayer_ruby/configuration"
require "mpayer_ruby/fetch"
require "mpayer_ruby/endpoints/endpoint"
require "mpayer_ruby/endpoints/_endpoint"
require "mpayer_ruby/endpoints/client"
require "mpayer_ruby/endpoints/transaction"
require "mpayer_ruby/endpoints/account"
require "mpayer_ruby/endpoints/payable"
require "mpayer_ruby/endpoints/message"

# begin
# require "pry"
Expand All @@ -19,22 +20,22 @@
module Mpayer
class << self
attr_writer :configuration
end

def self.configuration
@configuration ||= Configuration.new
end
def configuration
@configuration ||= Configuration.new
end

def self.reset
@configuration = Configuration.new
end
def reset
@configuration = Configuration.new
end

def self.setup
yield(configuration)
end
def setup
yield(configuration)
end

def self.login
Mpayer::Fetch.post('/login',post: {user_no: ENV['MPAYER_USER'],password:ENV['MPAYER_PASSWORD']}.to_json)
end
def login
Mpayer::Fetch.post('/login',{user: ENV['MPAYER_USER'],password:ENV['MPAYER_PASSWORD']})
end
end

end
6 changes: 3 additions & 3 deletions lib/mpayer_ruby/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ module Mpayer
class Configuration
attr_accessor :user_no, :token, :base_url

def initialize(user_no:nil,token:nil)
@base_url = 'https://app.mpayer.co.ke/api/'
def initialize(user_no:nil,token:nil,base_url:'https://app.mpayer.co.ke/api/')
@base_url ||= base_url
@user_no ||= user_no
@token ||= token
end
Expand All @@ -13,7 +13,7 @@ def auth
end

def header
{'Content-Type'=> 'application/json', 'Accept' => 'application/json', 'X-WSSE' => auth }
{'Content-Type'=> 'application/json', 'Accept' => 'application/json', 'X-WSSE' => auth.to_s}
end

end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@ def after_initialize
end

# Use this methon in the association reader method witht the same name
def find_all(per:1,per_page:100,**options)
def find_all(page:1,per_page:100,**options)
# gets caller methods as association
association = caller_locations(1,1)[0].label
url = assoc_link(association.to_sym,options)
if self.pagination[association]=={per_page:per_page,per:per}
self.send("#{association}=", Mpayer::Fetch.get(url,query:{per:per,per_page:per_page}) ) if instance_variable_get("@#{association}").nil?
if self.pagination[association]=={per_page:per_page,page:page}
self.send("#{association}=", Mpayer::Fetch.get(url,query:{page:page,per_page:per_page}) ) if instance_variable_get("@#{association}").nil?
else
self.send("#{association}=", Mpayer::Fetch.get(url,query:{per:per,per_page:per_page}) )
self.send("#{association}=", Mpayer::Fetch.get(url,query:{page:page,per_page:per_page}) )
end
self.pagination.merge!({"#{association}":{per:per,per_page:per_page}})
self.pagination.merge!({"#{association}":{page:page,per_page:per_page}})
return instance_variable_get("@#{association}")
end

Expand Down
22 changes: 11 additions & 11 deletions lib/mpayer_ruby/endpoints/account.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ class Account < Mpayer::Endpoint
class << self

# Mpayer::Account.all()
def all(per:1,per_page:100)
def all(page:1,per_page:100)
url = "/accounts/all_accounts"
Mpayer::Fetch.get(url,query:{per:per,per_page:per_page})
Mpayer::Fetch.get(url,query:{page:page,per_page:per_page})
end

# options = {from_date:nil,to_date:nil, dr_cr:nil, ac_type:nil, category:nil}
# Mpayer::Account.aggregate(options)
def aggregates(per:1,per_page:100, **options)
def aggregates(page:1,per_page:100, **options)
url = "/accounts/aggregates"
Mpayer::Fetch.get(url,query:{per:per,per_page:per_page}.merge!(options))
Mpayer::Fetch.get(url,query:{page:page,per_page:per_page}.merge!(options))
end

# Mpayer::Account.find(account_id)
Expand All @@ -29,22 +29,22 @@ def find(account_id,fetch:true)
# account.update(name:new_name)
def update(options)
url = "/accounts/#{self.id}"
response = Mpayer::Fetch.put(url,body: options.to_json)
response = Mpayer::Fetch.put(url,options)
self.response = response
end

def enroll

end

# Mpayer::Account.find(26, fetch:false).members(per:1,per_page:100)
def members(per:1,per_page:100)
find_all(per:per,per_page:per_page)
# Mpayer::Account.find(26, fetch:false).members(page:1,per_page:100)
def members(page:1,per_page:100)
find_all(page:page,per_page:per_page)
end

# Mpayer::Account.find(26, fetch:false).payable_items(per:1,per_page:100)
def payable_items(per:1,per_page:100)
find_all(per:per,per_page:per_page)
# Mpayer::Account.find(26, fetch:false).payable_items(page:1,per_page:100)
def payable_items(page:1,per_page:100)
find_all(page:page,per_page:per_page)
end

protected
Expand Down
31 changes: 16 additions & 15 deletions lib/mpayer_ruby/endpoints/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ class Client < Mpayer::Endpoint
class << self

# Mpayer::Client.all
def all(per:1,per_page:100)
def all(page:1,per_page:100)
url = "/clients/all_clients"
Mpayer::Fetch.get(url,query:{per:per,per_page:per_page})
Mpayer::Fetch.get(url,query:{page:page,per_page:per_page})
end

# Mpayer::Client.find(id)
Expand All @@ -21,16 +21,17 @@ def find(client_id,fetch: true)
# Mpayer::Client.create(client_attributes)
def create(options={})
url = "/clients"
response = Mpayer::Fetch.post(url,body: options.to_json)
client = new(options.merge!(id:response.id ,response:response))
# bp
response = Mpayer::Fetch.post(url,options)
client = new(options.merge!(id:response.id ,response:response, account: response.account.first))
end

end

# Mpayer::Client.find(id:20284).account(accountsid)
def account(account_id=nil,client_id=id)
account_id ||= @account.id rescue nil
raise ArgumentError if client_id.nil? or account_id.nil?
raise "Arguments missing: account_id or client_id" if client_id.nil? or account_id.nil?
url = "/clients/#{client_id}/accounts/#{account_id}"
if (@account.id == account_id rescue false)
@account ||= Mpayer::Fetch.get(url)
Expand All @@ -43,22 +44,22 @@ def account(account_id=nil,client_id=id)
# Mpayer::Client.find(id:20284).create_account(options)
def create_account(options={})
url = "/clients/#{self.id}/accounts/new"
@account = Mpayer::Fetch.post(url,body: options.to_json)
@account = Mpayer::Fetch.post(url,options)
end

# Mpayer::Client.find(26, fetch:false).accounts(per:1,per_page:100)
def accounts(per:1,per_page:100)
find_all(per:per,per_page:per_page)
# Mpayer::Client.find(26, fetch:false).accounts(page:1,per_page:100)
def accounts(page:1,per_page:100)
find_all(page:page,per_page:per_page)
end

# Mpayer::Client.find(26, fetch:false).payables(per:1,per_page:100)
def payables(per:1,per_page:100)
find_all(per:per,per_page:per_page)
# Mpayer::Client.find(26, fetch:false).payables(page:1,per_page:100)
def payables(page:1,per_page:100)
find_all(page:page,per_page:per_page)
end

# Mpayer::Client.find(26, fetch:false).transactions(account_id, per:1,per_page:100)
def transactions(account_id,per:1,per_page:100)
find_all(per:per,per_page:per_page,account_id:account_id)
# Mpayer::Client.find(26, fetch:false).transactions(account_id, page:1,per_page:100)
def transactions(account_id,page:1,per_page:100)
find_all(page:page,per_page:per_page,account_id:account_id)
end

protected
Expand Down
22 changes: 22 additions & 0 deletions lib/mpayer_ruby/endpoints/message.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module Mpayer
class Message < Mpayer::Endpoint

class << self
# message_attributes = {message: 'Please send me a message', destination:'0722737343,343843843'}
# Mpayer::Message.create(message_attributes)
def create(options={})
url = "/messages"
response = Mpayer::Fetch.post(url,options)
message = new(options.merge!(id:response.id ,response:response))
end

end

protected

def after_initialize
@endpoint = 'messages'
end

end
end
8 changes: 4 additions & 4 deletions lib/mpayer_ruby/endpoints/payable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ class Payable < Mpayer::Endpoint
class << self

# Mpayer::Payable.all
def all(per:1,per_page:100)
def all(page:1,per_page:100)
url = "/payables/all"
Mpayer::Fetch.get(url,query:{per:per,per_page:per_page})
Mpayer::Fetch.get(url,query:{page:page,per_page:per_page})
end

# Mpayer::Payable.find(id)
Expand All @@ -18,15 +18,15 @@ def find(payable_id,fetch:true)

# Mpayer::Payable.where(ref_id:"KT0041[P]-010000402")
def where(ref_id:,fetch:true)
url = "/payables/search/#{CGI.escape(ref_id)}"
url = "/payables/search/#{CGI.escape(ref_id.to_s)}"
response = Mpayer::Fetch.get(url) if fetch
payable = new(id:response.id,response:response) unless (response.id rescue nil).nil?
end

# Mpayer::Payable.create(options)
def create(options={})
url = "/payables"
response = Mpayer::Fetch.post(url,body: options.to_json)
response = Mpayer::Fetch.post(url,options)
payable_id = response.id
payable = new(options.merge!(id:payable_id,response:response))
end
Expand Down
12 changes: 6 additions & 6 deletions lib/mpayer_ruby/endpoints/transaction.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ class Transaction < Mpayer::Endpoint
class << self

# Mpayer::Transaction.all(from: Time.now - (86400*400))
def all(per:1,per_page:100,from: nil,to: nil)
def all(page:1,per_page:100,from: nil,to: nil)
url = "/transactions/all"
from = from.strftime("%F %T") unless from.nil?
to = to.strftime("%F %T") unless to.nil?
Mpayer::Fetch.get(url,query:{per:per,per_page:per_page,from:from,to:to})
Mpayer::Fetch.get(url,query:{page:page,per_page:per_page,from:from,to:to})
end

# Mpayer::Transaction.where(ref_id:"KT0041[P]-010000402")
def where(ref_id:,fetch:true)
url = "/transactions/#{CGI.escape(ref_id)}"
url = "/transactions/#{CGI.escape(ref_id.to_s)}"
response = Mpayer::Fetch.get(url) if fetch
transaction = new(id:response.id,response:response)
end
Expand All @@ -22,23 +22,23 @@ def where(ref_id:,fetch:true)
# Mpayer::Transaction.deposit(body)
def deposit(**options)
url = "/transactions/deposit"
response = Mpayer::Fetch.put(url,body: mpayer_refs.merge!(options).to_json)
response = Mpayer::Fetch.put(url,mpayer_refs.merge!(options))
transaction = new(id:response.id,response:response)
end

# body = {particulars:particulars,ref_id:mpayer_ref_id,amount:amount,dr_party: dr_party}
# Mpayer::Transaction.withdraw(body)
def withdraw(**options)
url = "/transactions/withdraw"
response = Mpayer::Fetch.delete(url,body: mpayer_refs.merge!(options).to_json)
response = Mpayer::Fetch.delete(url,mpayer_refs.merge!(options))
transaction = new(id:response.id,response:response)
end

# body = {particulars:particulars,ref_id:mpayer_ref_id,amount:amount,dr_party: dr_party, cr_party: cr_party}
# Mpayer::Transaction.transfer(body)
def transfer(**options)
url = "/transactions/transfer"
response = Mpayer::Fetch.post(url,body: mpayer_refs.merge!(options).to_json)
response = Mpayer::Fetch.post(url,mpayer_refs.merge!(options))
transaction = new(id:response.id,response:response)
end

Expand Down
Loading

0 comments on commit 9a05f88

Please sign in to comment.