restful_kashflow 0.0.1 → 0.0.2

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
- SHA1:
3
- metadata.gz: 6dd7f5d9cf7795e3ffcc7409e1a2dbd365b3b59a
4
- data.tar.gz: 7b74ce28102c8b1ee3ddac1093fc6554043b017e
2
+ SHA256:
3
+ metadata.gz: 407a5c023fa2fcfc38fc4d2237e60dc79740d6bc8d4773865f252177afb430e6
4
+ data.tar.gz: 5af09b44083b7026988b907fb897941c9bc0ac2cd4759d8ffed3f4e3a3e85c76
5
5
  SHA512:
6
- metadata.gz: 9790017d6256c99435b8070315155a35348db9b0c33b34ad684c4939672d52e24613533a5a2c19f9c6cf1518e5de76a3863135da93c5835ba5e7d2f12ffa1fc9
7
- data.tar.gz: 08bdd278f0143af1f884d7a3efcebc59fc0ba573ef5dd3b2bf333dfe958a268e03001c6396948f902b1fb215f837e26d2b333055659145c5c2c42248b33e5098
6
+ metadata.gz: 9f599e576992274d5341c7ca287f6d68a358555b54b174b912466d796d2598dcb0de5cc66a127f1addc059aa73580fdf172d751aaae350ca0e9649a96a484069
7
+ data.tar.gz: 7890724a7484c9369ff2ce22f6169b75b8e74262ccf70d04951ab32781a50e77f22d21d6fcb8bbf963c44a2b64e8c4be7d6633450c6d5f3f5438a36707a3c0fd
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ restful-kashflow
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.5.0
@@ -26,6 +26,35 @@ module RestfulKashflow
26
26
  @customer[customer_id] ||= Services::Customer.new(@api_service, customer_id)
27
27
  end
28
28
 
29
+ def new_customer(name: , email:, first_name:, last_name:)
30
+ customer = Services::Customer.create(
31
+ @api_service,
32
+ name,
33
+ email,
34
+ first_name,
35
+ last_name
36
+ )
37
+
38
+ puts pp customer
39
+ puts customer.class
40
+ puts customer.first
41
+ puts customer["Code"]
42
+ puts customer["Contacts"].first["Email"]
43
+
44
+ puts mandate = Services::Customer.get_mandate(
45
+ api_service: @api_service,
46
+ code: customer["Code"]
47
+ )
48
+
49
+ mandate = Services::Customer.create_mandate(
50
+ api_service: @api_service,
51
+ code: customer["Code"],
52
+ email: customer["Contacts"].first["Email"]
53
+ )
54
+ puts mandate
55
+ return { customer: customer, mandate: mandate }
56
+ end
57
+
29
58
  private
30
59
 
31
60
  def url_for_environment(environment)
@@ -4,18 +4,32 @@ module RestfulKashflow
4
4
 
5
5
  private
6
6
 
7
- def call_url
8
- session_id = @api_service.session_token
9
- full_url = "#{@api_service.url}#{@url}"
7
+ def self.call_url(api_service, url, method = 'get', body = "")
8
+ session_id = api_service.session_token
9
+ full_url = "#{api_service.url}#{url}"
10
10
 
11
- puts "Calling #{full_url}"
11
+ puts "Calling #{full_url} with method #{method}"
12
12
 
13
- @response = RestClient.get full_url,
14
- {
15
- content_type: :json,
16
- accept: :json,
17
- Authorization: "KfToken #{session_id}"
18
- }
13
+ begin
14
+ if method == 'get'
15
+ RestClient.get full_url,
16
+ {
17
+ content_type: :json,
18
+ accept: :json,
19
+ Authorization: "KfToken #{session_id}"
20
+ }
21
+ elsif method == 'post'
22
+ RestClient.post full_url, body,
23
+ {
24
+ content_type: :json,
25
+ accept: :json,
26
+ Authorization: "KfToken #{session_id}"
27
+ }
28
+ end
29
+ rescue RestClient::ExceptionWithResponse => e
30
+ puts e.response
31
+ return nil
32
+ end
19
33
  end
20
34
  end
21
35
  end
@@ -7,14 +7,64 @@ module RestfulKashflow
7
7
  @url = "/customers/#{customer_id}"
8
8
  @api_service = api_service
9
9
 
10
- call_url
10
+ response = Customer::call_url(@api_service, @url)
11
11
 
12
- @customer = JSON.parse(@response.body)
12
+ @customer = JSON.parse(response.body)
13
13
  end
14
14
 
15
15
  def has_signed_mandate?
16
16
  !!@customer["IsGoCardlessMandateSet"]
17
17
  end
18
+
19
+ def self.create(api_service, name, email, first_name, last_name)
20
+ url = "/customers"
21
+
22
+ body = {
23
+ "name": name,
24
+ "contacts": [
25
+ {
26
+ "email": email,
27
+ "firstname": first_name,
28
+ "lastname": last_name
29
+ }
30
+ ]
31
+ }.to_json
32
+
33
+ response = call_url(api_service, url, 'post', body)
34
+
35
+ @customer = JSON.parse(response.body)
36
+ end
37
+
38
+ def self.get_mandate(api_service:, code:)
39
+ url = "/customers/#{code}/mandates"
40
+
41
+ response = call_url(api_service, url, 'get')
42
+
43
+ @customer_mandate = JSON.parse(response.body)
44
+ end
45
+
46
+ def self.create_mandate(api_service:, code:, email:)
47
+ url = "/customers/#{code}/mandates"
48
+
49
+ body = {
50
+ "Amount": 2000,
51
+ "Email": {
52
+ "To": email,
53
+ "Subject": "Butterware Direct Debit Mandate",
54
+ "Body": "Butterware Direct Debit Mandate",
55
+ "IsHtml": true,
56
+ "SenderAddress": "accounts@butterware.co.uk",
57
+ "SenderName": "Butterware"
58
+ },
59
+ "Description": "Butterware Direct Debit Mandate",
60
+ "AmountValidity": "Monthly",
61
+ "CustomerCode": code
62
+ }.to_json
63
+
64
+ response = call_url(api_service, url, 'post', body)
65
+
66
+ @customer_mandate = JSON.parse(response.body)
67
+ end
18
68
  end
19
69
  end
20
70
  end
@@ -1,4 +1,4 @@
1
1
  module RestfulKashflow
2
2
  # Current version of the GC gem
3
- VERSION = '0.0.1'.freeze
3
+ VERSION = '0.0.2'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restful_kashflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Butterware
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-06 00:00:00.000000000 Z
11
+ date: 2018-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -89,6 +89,8 @@ extra_rdoc_files: []
89
89
  files:
90
90
  - ".gitignore"
91
91
  - ".rspec"
92
+ - ".ruby-gemset"
93
+ - ".ruby-version"
92
94
  - Gemfile
93
95
  - Gemfile.lock
94
96
  - LICENSE
@@ -123,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
125
  version: '0'
124
126
  requirements: []
125
127
  rubyforge_project:
126
- rubygems_version: 2.4.6
128
+ rubygems_version: 2.7.3
127
129
  signing_key:
128
130
  specification_version: 4
129
131
  summary: A gem for calling the Kashflow V2 API