restful_kashflow 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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