besepa 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee8e440e2acc7191913fe8d3b0651afb516582f7
4
- data.tar.gz: 403ad4563fe61da0e80cf93f094408d1803e6e7b
3
+ metadata.gz: c069ce337f4d79698fad699f1b84963b81b083b2
4
+ data.tar.gz: 88a9d145c8bffd3987a5426efb3ac3161339ce1b
5
5
  SHA512:
6
- metadata.gz: bcc84b3bd93f62fb7d6226d2c365b9a9fd8eaa51d54e5f1c646a7a86b2148fad146976e70f3f2ff88bf5cb07bec5c699cf3550810aa8907766111ce58eb38cb7
7
- data.tar.gz: 71d387c0b194c125714285501fd0893e261001014fd73d66e97a8ae21f9081e3450cc3cf20436a33ee3475e126ca7ba70f4eae8dc3753c017bef83cf5d8c0f2b
6
+ metadata.gz: b68ac3392ce09105c3109845cffdd641edc88385e468f2ff4c7c6fb13a534597292fbcad5239321bb38a430a194b3cf39ef42241717d0a06f647ae64e5d21160
7
+ data.tar.gz: a40e01d429ac07a1cf07c40d8ffd6574dc56f69c14b7ab6a347aca4aad946f6e3585f794ccdda700bc46d9aebe91f617182bc87fbcc7cd1a76e7fbd721533fc0
@@ -0,0 +1,15 @@
1
+ *.gem
2
+ .bundle
3
+ .config
4
+ .yardoc
5
+ Gemfile.lock
6
+ _yardoc
7
+ coverage
8
+ lib/bundler/man
9
+ pkg
10
+ rdoc
11
+ spec/reports
12
+ test/tmp
13
+ test/version_tmp
14
+ tmp
15
+ .idea
@@ -0,0 +1,25 @@
1
+ module Besepa
2
+ module ApiCalls
3
+ module Search
4
+ module ClassMethods
5
+
6
+ def search(filters = {})
7
+ response = get "/#{api_path}/search?field=#{filters[:field]}&value=#{filters[:value]}"
8
+ objects = Array.new
9
+ if response['count'] > 0
10
+ response['response'].each do |c|
11
+ objects << self.new(c)
12
+ end
13
+ end
14
+ objects
15
+ end
16
+
17
+ end
18
+
19
+ def self.included(base)
20
+ base.extend(ClassMethods)
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -3,6 +3,7 @@ module Besepa
3
3
  class Customer < Besepa::Resource
4
4
 
5
5
  include Besepa::ApiCalls::List
6
+ include Besepa::ApiCalls::Search
6
7
  include Besepa::ApiCalls::Create
7
8
  include Besepa::ApiCalls::Update
8
9
  include Besepa::ApiCalls::Destroy
@@ -141,4 +142,4 @@ module Besepa
141
142
  end
142
143
 
143
144
  end
144
- end
145
+ end
@@ -13,6 +13,10 @@ module Besepa
13
13
  attr_accessor f
14
14
  end
15
15
 
16
+ def customers
17
+ Customer.search({ field: :group_id, value: id})
18
+ end
19
+
16
20
  protected
17
21
 
18
22
  def self.api_path(filters={})
@@ -24,4 +28,4 @@ module Besepa
24
28
  end
25
29
 
26
30
  end
27
- end
31
+ end
@@ -1,6 +1,6 @@
1
1
  module Besepa
2
-
2
+
3
3
  module Utils
4
- VERSION = '0.4.1'.freeze
4
+ VERSION = '0.5.0'.freeze
5
5
  end
6
6
  end
@@ -1,60 +1,66 @@
1
-
2
1
  require 'helper'
3
2
 
4
3
  describe Besepa::Customer do
5
4
 
6
5
  describe '#all' do
7
-
8
6
  before do
9
7
  stub_get('/customers').to_return(body: fixture('customers.json'), headers: {content_type: 'application/json; charset=utf-8'})
10
8
  end
11
-
9
+
12
10
  it 'returns a list of customers' do
13
11
  customers = Besepa::Customer.all
14
12
  expect(customers).to be_an Array
15
13
  expect(customers.first).to be_an Besepa::Customer
16
14
  expect(customers.size).to eq(1)
17
15
  end
18
-
19
16
  end
20
17
 
21
18
  describe '#find' do
22
-
23
19
  before do
24
20
  stub_get('/customers/cus12345').to_return(body: fixture('customer.json'), headers: {content_type: 'application/json; charset=utf-8'})
25
21
  end
26
-
22
+
27
23
  it 'returns a a customer' do
28
24
  customer = Besepa::Customer.find('cus12345')
29
25
  expect(customer).to be_an Besepa::Customer
30
26
  expect(customer.name).to eq("Pancho Villa SLU")
31
27
  end
32
-
33
28
  end
34
-
35
- describe '.save' do
36
29
 
30
+ describe '#search' do
31
+ before do
32
+ stub_get('/customers/search?field=group_id&value=foo').to_return(body: fixture('customers.json'), headers: {content_type: 'application/json; charset=utf-8'})
33
+ end
34
+
35
+ it 'returs a list of customers' do
36
+ customers = Besepa::Customer.search(field: 'group_id', value: 'foo')
37
+ expect(customers).to be_an Array
38
+ expect(customers.first).to be_an Besepa::Customer
39
+ expect(customers.size).to eq(1)
40
+ end
41
+ end
42
+
43
+ describe '.save' do
37
44
  before do
38
45
  stub_get('/customers/cus12345').to_return(body: fixture('customer.json'), headers: {content_type: 'application/json; charset=utf-8'})
39
46
  stub_put('/customers/cus12345').to_return(body: fixture('customer.json'), headers: {content_type: 'application/json; charset=utf-8'})
40
47
  end
41
-
48
+
42
49
  it 'returns a a customer' do
43
50
  customer = Besepa::Customer.find('cus12345')
44
51
  customer.name = customer.name.reverse
45
52
  customer = customer.save
46
53
  expect(customer).to be_an Besepa::Customer
47
54
  end
48
-
49
55
  end
50
-
56
+
51
57
  describe '.destroy' do
52
58
 
53
59
  before do
54
60
  stub_get('/customers/cus12345').to_return(body: fixture('customer.json'), headers: {content_type: 'application/json; charset=utf-8'})
55
61
  stub_delete('/customers/cus12345').to_return(body: fixture('customer_removed.json'), headers: {content_type: 'application/json; charset=utf-8'})
56
62
  end
57
-
63
+
58
64
  it 'returns a a customer' do
59
65
  customer = Besepa::Customer.find('cus12345')
60
66
  customer.name = customer.name.reverse
@@ -62,58 +68,45 @@ describe Besepa::Customer do
62
68
  expect(customer).to be_an Besepa::Customer
63
69
  expect(customer.status).to eq('REMOVED')
64
70
  end
65
-
66
71
  end
67
-
68
-
72
+
69
73
  describe "getting customer debits" do
70
-
71
74
  before do
72
75
  stub_get('/customers/cus12345/debits').to_return(body: fixture('customer_debits.json'), headers: {content_type: 'application/json; charset=utf-8'})
73
76
  end
74
-
77
+
75
78
  it 'returns a list of debits' do
76
79
  debits = Besepa::Customer.new(id: 'cus12345').debits
77
80
  expect(debits).to be_an Array
78
81
  expect(debits.first).to be_an Besepa::Debit
79
82
  expect(debits.size).to eq(1)
80
83
  end
81
-
82
84
  end
83
-
84
- describe "creating a debit for a customer" do
85
85
 
86
+ describe "creating a debit for a customer" do
86
87
  describe "with valid data" do
87
-
88
88
  before do
89
89
  stub_post('/customers/cus12345/debits').to_return(body: fixture('customer_add_debit.json'), headers: {content_type: 'application/json; charset=utf-8'})
90
90
  end
91
-
91
+
92
92
  it 'returns the new created debit' do
93
93
  debit = Besepa::Customer.new(id: 'cus12345').add_debit("man123", "ref123", "desc123", 1000, '2015-11-23')
94
-
94
+
95
95
  expect(debit).to be_an Besepa::Debit
96
96
  end
97
-
98
97
  end
99
-
100
98
  end
101
-
102
-
99
+
103
100
  describe "getting customer bank_accounts" do
104
-
105
101
  before do
106
102
  stub_get('/customers/cus12345/bank_accounts').to_return(body: fixture('customer_bank_accounts.json'), headers: {content_type: 'application/json; charset=utf-8'})
107
103
  end
108
-
109
-
104
+
110
105
  it 'returns a list of bank accounts' do
111
106
  bank_accounts = Besepa::Customer.new(id: 'cus12345').bank_accounts
112
107
  expect(bank_accounts).to be_an Array
113
108
  expect(bank_accounts.first).to be_an Besepa::BankAccount
114
109
  expect(bank_accounts.size).to eq(1)
115
110
  end
116
-
117
111
  end
118
-
119
- end
112
+ end
@@ -0,0 +1,18 @@
1
+ require 'helper'
2
+
3
+ describe Besepa::Group do
4
+
5
+ describe '#customers' do
6
+ before do
7
+ @group = Besepa::Group.new(id: 42)
8
+ stub_get('/customers/search?field=group_id&value=42').to_return(body: fixture('customers.json'), headers: {content_type: 'application/json; charset=utf-8'})
9
+ end
10
+
11
+ it 'returns a list of customers' do
12
+ customers = @group.customers
13
+ expect(customers).to be_an Array
14
+ expect(customers.first).to be_an Besepa::Customer
15
+ expect(customers.size).to eq(1)
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: besepa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - besepa.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-25 00:00:00.000000000 Z
11
+ date: 2016-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -101,6 +101,7 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
+ - ".gitignore"
104
105
  - Gemfile
105
106
  - Gemfile.lock
106
107
  - LICENSE.txt
@@ -112,6 +113,7 @@ files:
112
113
  - lib/besepa/api_calls/create.rb
113
114
  - lib/besepa/api_calls/destroy.rb
114
115
  - lib/besepa/api_calls/list.rb
116
+ - lib/besepa/api_calls/search.rb
115
117
  - lib/besepa/api_calls/update.rb
116
118
  - lib/besepa/bank_account.rb
117
119
  - lib/besepa/business_account.rb
@@ -132,6 +134,7 @@ files:
132
134
  - lib/besepa/utils/version.rb
133
135
  - lib/besepa/webhook.rb
134
136
  - spec/besepa/customer_spec.rb
137
+ - spec/besepa/group_spec.rb
135
138
  - spec/fixtures/customer.json
136
139
  - spec/fixtures/customer_add_debit.json
137
140
  - spec/fixtures/customer_bank_accounts.json
@@ -159,12 +162,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
162
  version: '0'
160
163
  requirements: []
161
164
  rubyforge_project:
162
- rubygems_version: 2.2.2
165
+ rubygems_version: 2.5.1
163
166
  signing_key:
164
167
  specification_version: 4
165
168
  summary: Ruby client for besepa.com
166
169
  test_files:
167
170
  - spec/besepa/customer_spec.rb
171
+ - spec/besepa/group_spec.rb
168
172
  - spec/fixtures/customer.json
169
173
  - spec/fixtures/customer_add_debit.json
170
174
  - spec/fixtures/customer_bank_accounts.json