quaderno 1.4.2 → 1.5.0

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
2
  SHA1:
3
- metadata.gz: f9649b303e7b1e03cb52a56fa08d5a61a9e76bbd
4
- data.tar.gz: 2cc6d393fa1df698cbc39483f49fa48d02de35df
3
+ metadata.gz: dee08493d1d68c2cc8cbb7473fa52ac770b80733
4
+ data.tar.gz: fd637ff0b65e876a1df65876b3aafb84cebe7ced
5
5
  SHA512:
6
- metadata.gz: de3b44d34a02088df8c4d84809bae79664f19f22a3692636d16af35e49aae7d79f814b2dae142f7860aa55994158b04f01e2c35e555e963eb9fbe81561751e47
7
- data.tar.gz: cd0e1697959b7cc80fd20cd006bdc98fd7ef098a9728f449de2d7dfbf4a3a929ba260c4841c1a149060a6624bdb9349101a810b98c2786b4cb9dc7f33317898d
6
+ metadata.gz: 08e2bd45a1473d822b39fbfed326d441c499307ed0cbfd59ec943e03a72f4b2842a8c92cb7569e7d03521746164f3cb0512608ba0e7e6ff6eb00667e52f045bf
7
+ data.tar.gz: 761cfc47e41567b74d15525c70d19e32886024ec588a4de40fa39be75716edb4a95a90144207cdb92cbb4dd8dcd580b32563a8aeb1607eb6ae44fc39a523f701
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Quaderno-ruby is a ruby wrapper for [Quaderno API] (https://github.com/quaderno/quaderno-api).
4
4
  As the API, it's mostly CRUD.
5
5
 
6
- Current version is 1.4.1. See the changelog [here](https://github.com/quaderno/quaderno-ruby/blob/master/changelog.md)
6
+ Current version is 1.5.0. See the changelog [here](https://github.com/quaderno/quaderno-ruby/blob/master/changelog.md)
7
7
 
8
8
  ## Installation & Configuration
9
9
 
@@ -355,6 +355,32 @@ will update the specified webhook with the data of the hash passed as second par
355
355
  ```ruby
356
356
  Quaderno::Webhook.delete(id) #=> Boolean
357
357
  ```
358
+ will delete the webhook with the id passed as parameter.
359
+
360
+
361
+ ## Managing transactions
362
+
363
+ ### Finding a transaction
364
+ ```ruby
365
+ Quaderno::Transaction.find(id) #=> Quaderno::Transaction
366
+ ```
367
+
368
+ will return the transaction with the id passed as parameter.
369
+
370
+ ### Creating a new transaction
371
+ ```ruby
372
+ Quaderno::Transaction.create(params) #=> Quaderno::Transaction
373
+ ```
374
+
375
+ will create a transaction using the information of the hash passed as parameter and return an instance of Quaderno::Transaction with the created transaction.
376
+
377
+
378
+ ### Deleting a transaction
379
+ ```ruby
380
+ Quaderno::Transaction.delete(id) #=> Boolean
381
+ ```
382
+ will delete the transaction with the id passed as parameter.
383
+
358
384
 
359
385
  ## Taxes
360
386
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.2
1
+ 1.5.0
data/changelog.md CHANGED
@@ -1,4 +1,11 @@
1
1
  #Changelog
2
+ ##1.5.0
3
+ * Added transactions
4
+ * Raise `Quaderno::Exceptions::RequiredFieldsEmpty for 422 responses
5
+
6
+ ##1.4.2
7
+ * Find method hotfix
8
+
2
9
  ##1.4.1
3
10
  * Fix wrong method name
4
11
  * Use correct organization in url
data/lib/quaderno-ruby.rb CHANGED
@@ -2,7 +2,7 @@ require 'ostruct'
2
2
 
3
3
  require 'quaderno-ruby/exceptions/exceptions'
4
4
  %w(crud deliver payment).each { |filename| require "quaderno-ruby/behavior/#{ filename }" }
5
- %w(base contact item invoice estimate expense document_item payment webhook tax).each { |filename| require "quaderno-ruby/#{ filename }" }
5
+ %w(base contact item invoice estimate expense document_item payment webhook tax transaction).each { |filename| require "quaderno-ruby/#{ filename }" }
6
6
 
7
7
  module Quaderno
8
8
 
@@ -30,8 +30,9 @@ module Quaderno
30
30
  if params[:id].nil? == false
31
31
  raise(Quaderno::Exceptions::InvalidID, "Invalid #{ api_model } instance identifier") if (party_response.response.class == Net::HTTPInternalServerError) || (party_response.response.class == Net::HTTPNotFound)
32
32
  end
33
+ debugger
33
34
  if params[:required_fields].nil? == false
34
- raise(Quaderno::Exceptions::RequiredFieldsEmpty, "#{ JSON::parse party_response.body }") if party_response.response.class == Net::HTTPClientError
35
+ raise(Quaderno::Exceptions::RequiredFieldsEmpty, "#{ JSON::parse party_response.body }") if party_response.response.class == Net::HTTPUnprocessableEntity
35
36
  end
36
37
  if params[:has_documents].nil? == false
37
38
  raise(Quaderno::Exceptions::HasAssociatedDocuments, "#{ JSON::parse party_response.body }") if party_response.response.class == Net::HTTPClientError
@@ -0,0 +1,11 @@
1
+ module Quaderno
2
+ class Transaction < Base
3
+
4
+ api_model Quaderno::Transaction
5
+ api_path 'transactions'
6
+
7
+ class << self
8
+ undef :all, :update
9
+ end
10
+ end
11
+ end
data/quaderno.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: quaderno 1.4.2 ruby lib
5
+ # stub: quaderno 1.5.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "quaderno"
9
- s.version = "1.4.2"
9
+ s.version = "1.5.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Recrea"]
14
- s.date = "2014-12-04"
14
+ s.date = "2014-12-09"
15
15
  s.description = " A ruby wrapper for Quaderno API "
16
16
  s.email = "carlos@recrea.es"
17
17
  s.extra_rdoc_files = [
@@ -42,6 +42,7 @@ Gem::Specification.new do |s|
42
42
  "lib/quaderno-ruby/item.rb",
43
43
  "lib/quaderno-ruby/payment.rb",
44
44
  "lib/quaderno-ruby/tax.rb",
45
+ "lib/quaderno-ruby/transaction.rb",
45
46
  "lib/quaderno-ruby/webhook.rb",
46
47
  "quaderno.gemspec",
47
48
  "test/fixtures/quaderno_cassettes/.DS_Store",
@@ -57,6 +58,7 @@ Gem::Specification.new do |s|
57
58
  "test/fixtures/quaderno_cassettes/deleted_expense.yml",
58
59
  "test/fixtures/quaderno_cassettes/deleted_invoice.yml",
59
60
  "test/fixtures/quaderno_cassettes/deleted_item.yml",
61
+ "test/fixtures/quaderno_cassettes/deleted_transaction.yml",
60
62
  "test/fixtures/quaderno_cassettes/deleted_webhook.yml",
61
63
  "test/fixtures/quaderno_cassettes/delivered_estimate.yml",
62
64
  "test/fixtures/quaderno_cassettes/delivered_invoice.yml",
@@ -65,12 +67,14 @@ Gem::Specification.new do |s|
65
67
  "test/fixtures/quaderno_cassettes/found_expense.yml",
66
68
  "test/fixtures/quaderno_cassettes/found_invoice.yml",
67
69
  "test/fixtures/quaderno_cassettes/found_item.yml",
70
+ "test/fixtures/quaderno_cassettes/found_transaction.yml",
68
71
  "test/fixtures/quaderno_cassettes/found_webhook.yml",
69
72
  "test/fixtures/quaderno_cassettes/new_contact.yml",
70
73
  "test/fixtures/quaderno_cassettes/new_estimate.yml",
71
74
  "test/fixtures/quaderno_cassettes/new_expense.yml",
72
75
  "test/fixtures/quaderno_cassettes/new_invoice.yml",
73
76
  "test/fixtures/quaderno_cassettes/new_item.yml",
77
+ "test/fixtures/quaderno_cassettes/new_transaction.yml",
74
78
  "test/fixtures/quaderno_cassettes/new_webhook.yml",
75
79
  "test/fixtures/quaderno_cassettes/paid_expense.yml",
76
80
  "test/fixtures/quaderno_cassettes/paid_invoice.yml",
@@ -91,6 +95,7 @@ Gem::Specification.new do |s|
91
95
  "test/unit/test_quaderno_invoices.rb",
92
96
  "test/unit/test_quaderno_items.rb",
93
97
  "test/unit/test_quaderno_tax.rb",
98
+ "test/unit/test_quaderno_transactions.rb",
94
99
  "test/unit/test_quaderno_webhooks.rb"
95
100
  ]
96
101
  s.homepage = "http://github.com/quaderno/quaderno-ruby"
@@ -0,0 +1,158 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://rkHqiPxs4VFHgtqqjYqw@test-account.sandbox-quadernoapp.com/api/v1/transactions.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: country=ES&postal_code=08080&iin=424242&amount=1200&ip=85.155.156.215
9
+ headers:
10
+ authorization:
11
+ - Basic cmtIcWlQeHM0VkZIZ3RxcWpZcXc6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ server:
18
+ - nginx/1.6.2
19
+ date:
20
+ - Thu, 04 Dec 2014 13:54:30 GMT
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ transfer-encoding:
24
+ - chunked
25
+ connection:
26
+ - close
27
+ status:
28
+ - 200 OK
29
+ x-ratelimit-limit:
30
+ - '2000'
31
+ x-ratelimit-remaining:
32
+ - '1895'
33
+ x-ua-compatible:
34
+ - IE=Edge,chrome=1
35
+ etag:
36
+ - '"f285f54b8a0f537224daee598b6711d4"'
37
+ cache-control:
38
+ - max-age=0, private, must-revalidate
39
+ set-cookie:
40
+ - ahoy_visitor=0630f037-52d1-40b9-91b9-064ff28c4fc9; domain=.sandbox-quadernoapp.com;
41
+ path=/; expires=Sun, 04-Dec-2016 13:54:27 GMT
42
+ - ahoy_visit=a2d8164e-1d18-440c-8aa8-a3e6f5f897aa; domain=.sandbox-quadernoapp.com;
43
+ path=/; expires=Thu, 04-Dec-2014 17:54:27 GMT
44
+ - ahoy_track=true; domain=.sandbox-quadernoapp.com; path=/
45
+ - _quaderno_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJTczYzAwMTM2M2Q2YzYwYTIzOWQyMzJlZDhjYWFiMjQ2BjsAVA%3D%3D--bcf144190c60c41ad50a5cf50ae775ab7c6049d4;
46
+ domain=sandbox-quadernoapp.com; path=/; HttpOnly
47
+ x-request-id:
48
+ - 513e1c32a3e2153376043b94b713be4c
49
+ x-runtime:
50
+ - '2.340178'
51
+ x-rack-cache:
52
+ - invalidate, pass
53
+ body:
54
+ encoding: UTF-8
55
+ string: '{"id":37,"tax_name":null,"tax_rate":0.0,"amount":1200,"tax_amount":0,"total_amount":1200}'
56
+ http_version: '1.1'
57
+ recorded_at: Thu, 04 Dec 2014 13:54:30 GMT
58
+ - request:
59
+ method: delete
60
+ uri: http://rkHqiPxs4VFHgtqqjYqw@test-account.sandbox-quadernoapp.com/api/v1/transactions/37.json
61
+ body:
62
+ encoding: US-ASCII
63
+ string: ''
64
+ headers:
65
+ authorization:
66
+ - Basic cmtIcWlQeHM0VkZIZ3RxcWpZcXc6
67
+ response:
68
+ status:
69
+ code: 204
70
+ message: No Content
71
+ headers:
72
+ server:
73
+ - nginx/1.6.2
74
+ date:
75
+ - Thu, 04 Dec 2014 13:54:30 GMT
76
+ connection:
77
+ - close
78
+ status:
79
+ - 204 No Content
80
+ x-ratelimit-limit:
81
+ - '2000'
82
+ x-ratelimit-remaining:
83
+ - '1894'
84
+ x-ua-compatible:
85
+ - IE=Edge,chrome=1
86
+ cache-control:
87
+ - no-cache
88
+ set-cookie:
89
+ - ahoy_visitor=0acea62b-ccc1-4889-b7e9-4390320ea7f5; domain=.sandbox-quadernoapp.com;
90
+ path=/; expires=Sun, 04-Dec-2016 13:54:30 GMT
91
+ - ahoy_visit=f306e6e8-1ebb-4c54-8312-9cebe4f2b325; domain=.sandbox-quadernoapp.com;
92
+ path=/; expires=Thu, 04-Dec-2014 17:54:30 GMT
93
+ - ahoy_track=true; domain=.sandbox-quadernoapp.com; path=/
94
+ - _quaderno_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJWVhYTdiYmU4NmM1ZmY0NGZlZGZhMjM1N2RiODc0YjM1BjsAVA%3D%3D--ef2532e2bad0d52b6a962453dd8ad4873a9cde24;
95
+ domain=sandbox-quadernoapp.com; path=/; HttpOnly
96
+ x-request-id:
97
+ - ba917f6dad1bdba6691958701dda500b
98
+ x-runtime:
99
+ - '0.059911'
100
+ x-rack-cache:
101
+ - invalidate, pass
102
+ body:
103
+ encoding: US-ASCII
104
+ string: ''
105
+ http_version: '1.1'
106
+ recorded_at: Thu, 04 Dec 2014 13:54:30 GMT
107
+ - request:
108
+ method: get
109
+ uri: http://rkHqiPxs4VFHgtqqjYqw@test-account.sandbox-quadernoapp.com/api/v1/transactions/37.json
110
+ body:
111
+ encoding: US-ASCII
112
+ string: ''
113
+ headers:
114
+ authorization:
115
+ - Basic cmtIcWlQeHM0VkZIZ3RxcWpZcXc6
116
+ response:
117
+ status:
118
+ code: 401
119
+ message: Unauthorized
120
+ headers:
121
+ server:
122
+ - nginx/1.6.2
123
+ date:
124
+ - Thu, 04 Dec 2014 13:54:31 GMT
125
+ content-type:
126
+ - application/json; charset=utf-8
127
+ transfer-encoding:
128
+ - chunked
129
+ connection:
130
+ - close
131
+ status:
132
+ - 401 Unauthorized
133
+ x-ratelimit-limit:
134
+ - '2000'
135
+ x-ratelimit-remaining:
136
+ - '1893'
137
+ x-ua-compatible:
138
+ - IE=Edge,chrome=1
139
+ cache-control:
140
+ - no-cache, private
141
+ set-cookie:
142
+ - ahoy_visitor=35e27e33-a940-4f0e-99ac-69428b49a0a7; domain=.sandbox-quadernoapp.com;
143
+ path=/; expires=Sun, 04-Dec-2016 13:54:31 GMT
144
+ - ahoy_visit=63e91bd4-65ce-4425-9fa5-b9185fda6785; domain=.sandbox-quadernoapp.com;
145
+ path=/; expires=Thu, 04-Dec-2014 17:54:31 GMT
146
+ - ahoy_track=true; domain=.sandbox-quadernoapp.com; path=/
147
+ x-request-id:
148
+ - 14c73e0c11b8e38324bbd94d112fe68f
149
+ x-runtime:
150
+ - '0.044463'
151
+ x-rack-cache:
152
+ - miss
153
+ body:
154
+ encoding: UTF-8
155
+ string: '{"error":"Unauthorized access or transaction does not exist."}'
156
+ http_version: '1.1'
157
+ recorded_at: Thu, 04 Dec 2014 13:54:31 GMT
158
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,56 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://rkHqiPxs4VFHgtqqjYqw@test-account.sandbox-quadernoapp.com/api/v1/transactions/18.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ authorization:
11
+ - Basic cmtIcWlQeHM0VkZIZ3RxcWpZcXc6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ server:
18
+ - nginx/1.6.2
19
+ date:
20
+ - Thu, 04 Dec 2014 13:45:20 GMT
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ transfer-encoding:
24
+ - chunked
25
+ connection:
26
+ - close
27
+ status:
28
+ - 200 OK
29
+ x-ratelimit-limit:
30
+ - '2000'
31
+ x-ratelimit-remaining:
32
+ - '1901'
33
+ last-modified:
34
+ - Thu, 04 Dec 2014 12:14:01 GMT
35
+ cache-control:
36
+ - must-revalidate, private, max-age=0
37
+ x-ua-compatible:
38
+ - IE=Edge,chrome=1
39
+ set-cookie:
40
+ - ahoy_visitor=a3a7ea1f-ae44-4804-8509-5b901d685a9f; domain=.sandbox-quadernoapp.com;
41
+ path=/; expires=Sun, 04-Dec-2016 13:45:20 GMT
42
+ - ahoy_visit=d449d294-6f7f-4c4c-8710-d0db6010e863; domain=.sandbox-quadernoapp.com;
43
+ path=/; expires=Thu, 04-Dec-2014 17:45:20 GMT
44
+ - ahoy_track=true; domain=.sandbox-quadernoapp.com; path=/
45
+ x-request-id:
46
+ - 0c57a4f541a26832504285c5d15beb76
47
+ x-runtime:
48
+ - '0.056580'
49
+ x-rack-cache:
50
+ - miss
51
+ body:
52
+ encoding: UTF-8
53
+ string: '{"id":18,"tax_name":"IGIC","tax_rate":7.0,"amount":1200,"tax_amount":84,"total_amount":1284}'
54
+ http_version: '1.1'
55
+ recorded_at: Thu, 04 Dec 2014 13:45:20 GMT
56
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,168 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://rkHqiPxs4VFHgtqqjYqw@test-account.sandbox-quadernoapp.com/api/v1/transactions.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: country=ES&postal_code=35003&iin=424242&amount=1200&ip=85.155.157.215
9
+ headers:
10
+ authorization:
11
+ - Basic cmtIcWlQeHM0VkZIZ3RxcWpZcXc6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ server:
18
+ - nginx/1.6.2
19
+ date:
20
+ - Thu, 04 Dec 2014 13:45:16 GMT
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ transfer-encoding:
24
+ - chunked
25
+ connection:
26
+ - close
27
+ status:
28
+ - 200 OK
29
+ x-ratelimit-limit:
30
+ - '2000'
31
+ x-ratelimit-remaining:
32
+ - '1907'
33
+ x-ua-compatible:
34
+ - IE=Edge,chrome=1
35
+ etag:
36
+ - '"8e364ca38768f22d2a62dc71be9c223b"'
37
+ cache-control:
38
+ - max-age=0, private, must-revalidate
39
+ set-cookie:
40
+ - ahoy_visitor=56c36791-5d3b-4f3f-ab5b-99fb0eab2f54; domain=.sandbox-quadernoapp.com;
41
+ path=/; expires=Sun, 04-Dec-2016 13:45:16 GMT
42
+ - ahoy_visit=788482b8-87f7-4247-a2d5-840baa45f0ea; domain=.sandbox-quadernoapp.com;
43
+ path=/; expires=Thu, 04-Dec-2014 17:45:16 GMT
44
+ - ahoy_track=true; domain=.sandbox-quadernoapp.com; path=/
45
+ - _quaderno_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJTgxZGFkZTY1ZThiZGZjMDljZDI1ZWRkODUxNjA1YzkyBjsAVA%3D%3D--0664177c24eccb156a3e29262d479738760f0fce;
46
+ domain=sandbox-quadernoapp.com; path=/; HttpOnly
47
+ x-request-id:
48
+ - a4dccd55e77728154d72e4a81ca87084
49
+ x-runtime:
50
+ - '0.217282'
51
+ x-rack-cache:
52
+ - invalidate, pass
53
+ body:
54
+ encoding: UTF-8
55
+ string: '{"id":33,"tax_name":"IGIC","tax_rate":7.0,"amount":1200,"tax_amount":84,"total_amount":1284}'
56
+ http_version: '1.1'
57
+ recorded_at: Thu, 04 Dec 2014 13:45:16 GMT
58
+ - request:
59
+ method: post
60
+ uri: http://rkHqiPxs4VFHgtqqjYqw@test-account.sandbox-quadernoapp.com/api/v1/transactions.json
61
+ body:
62
+ encoding: UTF-8
63
+ string: country=ES&postal_code=35003&iin=424242&amount=1200&ip=85.155.157.215
64
+ headers:
65
+ authorization:
66
+ - Basic cmtIcWlQeHM0VkZIZ3RxcWpZcXc6
67
+ response:
68
+ status:
69
+ code: 200
70
+ message: OK
71
+ headers:
72
+ server:
73
+ - nginx/1.6.2
74
+ date:
75
+ - Thu, 04 Dec 2014 13:45:17 GMT
76
+ content-type:
77
+ - application/json; charset=utf-8
78
+ transfer-encoding:
79
+ - chunked
80
+ connection:
81
+ - close
82
+ status:
83
+ - 200 OK
84
+ x-ratelimit-limit:
85
+ - '2000'
86
+ x-ratelimit-remaining:
87
+ - '1906'
88
+ x-ua-compatible:
89
+ - IE=Edge,chrome=1
90
+ etag:
91
+ - '"4b5cced371158aa38def383d8f0bfb5a"'
92
+ cache-control:
93
+ - max-age=0, private, must-revalidate
94
+ set-cookie:
95
+ - ahoy_visitor=40bd7748-a4ab-4436-9b66-ea47a0010947; domain=.sandbox-quadernoapp.com;
96
+ path=/; expires=Sun, 04-Dec-2016 13:45:17 GMT
97
+ - ahoy_visit=59defdfa-8952-4734-ae0e-94bdda1faaae; domain=.sandbox-quadernoapp.com;
98
+ path=/; expires=Thu, 04-Dec-2014 17:45:17 GMT
99
+ - ahoy_track=true; domain=.sandbox-quadernoapp.com; path=/
100
+ - _quaderno_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJWQ5MmJkNGQzNTkzNzc4NGYwYzM1MjNhNzVmZjc1NTAyBjsAVA%3D%3D--45933484fbb855cd8227c0f49e84b4e9a9ca2c9b;
101
+ domain=sandbox-quadernoapp.com; path=/; HttpOnly
102
+ x-request-id:
103
+ - 914fde2d81b31656f5b3e4ac46654380
104
+ x-runtime:
105
+ - '0.166646'
106
+ x-rack-cache:
107
+ - invalidate, pass
108
+ body:
109
+ encoding: UTF-8
110
+ string: '{"id":34,"tax_name":"IGIC","tax_rate":7.0,"amount":1200,"tax_amount":84,"total_amount":1284}'
111
+ http_version: '1.1'
112
+ recorded_at: Thu, 04 Dec 2014 13:45:17 GMT
113
+ - request:
114
+ method: post
115
+ uri: http://rkHqiPxs4VFHgtqqjYqw@test-account.sandbox-quadernoapp.com/api/v1/transactions.json
116
+ body:
117
+ encoding: UTF-8
118
+ string: country=ES&postal_code=08080&iin=424242&amount=1200&ip=85.155.156.215
119
+ headers:
120
+ authorization:
121
+ - Basic cmtIcWlQeHM0VkZIZ3RxcWpZcXc6
122
+ response:
123
+ status:
124
+ code: 200
125
+ message: OK
126
+ headers:
127
+ server:
128
+ - nginx/1.6.2
129
+ date:
130
+ - Thu, 04 Dec 2014 13:45:17 GMT
131
+ content-type:
132
+ - application/json; charset=utf-8
133
+ transfer-encoding:
134
+ - chunked
135
+ connection:
136
+ - close
137
+ status:
138
+ - 200 OK
139
+ x-ratelimit-limit:
140
+ - '2000'
141
+ x-ratelimit-remaining:
142
+ - '1905'
143
+ x-ua-compatible:
144
+ - IE=Edge,chrome=1
145
+ etag:
146
+ - '"edc2c6a6a28827d40c387eab9e9c8366"'
147
+ cache-control:
148
+ - max-age=0, private, must-revalidate
149
+ set-cookie:
150
+ - ahoy_visitor=25850cb6-d521-4d42-835c-9107ec548daf; domain=.sandbox-quadernoapp.com;
151
+ path=/; expires=Sun, 04-Dec-2016 13:45:17 GMT
152
+ - ahoy_visit=9faf49c4-5639-4869-aced-81da1a6e3073; domain=.sandbox-quadernoapp.com;
153
+ path=/; expires=Thu, 04-Dec-2014 17:45:17 GMT
154
+ - ahoy_track=true; domain=.sandbox-quadernoapp.com; path=/
155
+ - _quaderno_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJTVlMzg1ZGZmOWZhZGEzODJhNjk0ZjEyY2VhYjUxYzg3BjsAVA%3D%3D--379bbbe281b0dfbf0766879837ff3d2d7b931a9b;
156
+ domain=sandbox-quadernoapp.com; path=/; HttpOnly
157
+ x-request-id:
158
+ - cf6bc554b8f0659e2595c5dd7e6ff7a9
159
+ x-runtime:
160
+ - '0.167067'
161
+ x-rack-cache:
162
+ - invalidate, pass
163
+ body:
164
+ encoding: UTF-8
165
+ string: '{"id":35,"tax_name":null,"tax_rate":0.0,"amount":1200,"tax_amount":0,"total_amount":1200}'
166
+ http_version: '1.1'
167
+ recorded_at: Thu, 04 Dec 2014 13:45:18 GMT
168
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,78 @@
1
+ require 'helper'
2
+
3
+ class TestQuadernoTransaction < Test::Unit::TestCase
4
+ context "A user with an authenticate token with transactions" do
5
+
6
+ setup do
7
+ Quaderno::Base.configure do |config|
8
+ config.auth_token = 'rkHqiPxs4VFHgtqqjYqw'
9
+ config.subdomain = 'test-account'
10
+ config.environment = :sandbox
11
+ end
12
+ end
13
+
14
+ should "get exception if pass wrong arguments" do
15
+ assert_raise ArgumentError do
16
+ VCR.use_cassette('found transaction') do
17
+ Quaderno::Transaction.find
18
+ end
19
+ end
20
+ end
21
+
22
+ should "find a transaction" do
23
+ VCR.use_cassette('found transaction') do
24
+ transaction = Quaderno::Transaction.find 18
25
+
26
+ assert_kind_of Quaderno::Transaction, transaction
27
+ assert_equal "IGIC", transaction.tax_name
28
+ assert_equal 7.0, transaction.tax_rate
29
+ assert_equal 1200, transaction.amount
30
+ assert_equal 84, transaction.tax_amount
31
+ assert_equal 1284, transaction.total_amount
32
+ end
33
+ end
34
+
35
+ should "create a transaction" do
36
+ VCR.use_cassette('new transaction') do
37
+ #Canarian company to a canarian consumer
38
+ transaction = Quaderno::Transaction.create(country: 'ES', postal_code: '35003', iin: '424242', amount: 1200, ip: '85.155.157.215')
39
+
40
+ assert_kind_of Quaderno::Transaction, transaction
41
+ assert_equal "IGIC", transaction.tax_name
42
+ assert_equal 7.0, transaction.tax_rate
43
+ assert_equal 1200, transaction.amount
44
+ assert_equal 84, transaction.tax_amount
45
+ assert_equal 1284, transaction.total_amount
46
+
47
+ transaction = Quaderno::Transaction.create(country: 'ES', postal_code: '35003', iin: '424242', amount: 1200, ip: '85.155.157.215')
48
+
49
+ assert_kind_of Quaderno::Transaction, transaction
50
+ assert_equal "IGIC", transaction.tax_name
51
+ assert_equal 7.0, transaction.tax_rate
52
+ assert_equal 1200, transaction.amount
53
+ assert_equal 84, transaction.tax_amount
54
+ assert_equal 1284, transaction.total_amount
55
+
56
+ #Canarian company to a non Canarian Spanish consumer
57
+ transaction = Quaderno::Transaction.create(country: 'ES', postal_code: '08080', iin: '424242', amount: 1200, ip: '85.155.156.215')
58
+
59
+ assert_kind_of Quaderno::Transaction, transaction
60
+ assert transaction.tax_name.nil?
61
+ assert_equal 0, transaction.tax_rate
62
+ assert_equal 1200, transaction.amount
63
+ assert_equal 0, transaction.tax_amount
64
+ assert_equal 1200, transaction.total_amount
65
+ end
66
+ end
67
+
68
+ should "delete a transaction" do
69
+ VCR.use_cassette('deleted transaction') do
70
+ new_transaction = Quaderno::Transaction.create(country: 'ES', postal_code: '08080', iin: '424242', amount: 1200, ip: '85.155.156.215')
71
+ Quaderno::Transaction.delete new_transaction.id
72
+ assert_raise Quaderno::Exceptions::InvalidSubdomainOrToken do
73
+ Quaderno::Transaction.find new_transaction.id
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quaderno
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Recrea
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-04 00:00:00.000000000 Z
11
+ date: 2014-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -83,6 +83,7 @@ files:
83
83
  - lib/quaderno-ruby/item.rb
84
84
  - lib/quaderno-ruby/payment.rb
85
85
  - lib/quaderno-ruby/tax.rb
86
+ - lib/quaderno-ruby/transaction.rb
86
87
  - lib/quaderno-ruby/webhook.rb
87
88
  - quaderno.gemspec
88
89
  - test/fixtures/quaderno_cassettes/.DS_Store
@@ -98,6 +99,7 @@ files:
98
99
  - test/fixtures/quaderno_cassettes/deleted_expense.yml
99
100
  - test/fixtures/quaderno_cassettes/deleted_invoice.yml
100
101
  - test/fixtures/quaderno_cassettes/deleted_item.yml
102
+ - test/fixtures/quaderno_cassettes/deleted_transaction.yml
101
103
  - test/fixtures/quaderno_cassettes/deleted_webhook.yml
102
104
  - test/fixtures/quaderno_cassettes/delivered_estimate.yml
103
105
  - test/fixtures/quaderno_cassettes/delivered_invoice.yml
@@ -106,12 +108,14 @@ files:
106
108
  - test/fixtures/quaderno_cassettes/found_expense.yml
107
109
  - test/fixtures/quaderno_cassettes/found_invoice.yml
108
110
  - test/fixtures/quaderno_cassettes/found_item.yml
111
+ - test/fixtures/quaderno_cassettes/found_transaction.yml
109
112
  - test/fixtures/quaderno_cassettes/found_webhook.yml
110
113
  - test/fixtures/quaderno_cassettes/new_contact.yml
111
114
  - test/fixtures/quaderno_cassettes/new_estimate.yml
112
115
  - test/fixtures/quaderno_cassettes/new_expense.yml
113
116
  - test/fixtures/quaderno_cassettes/new_invoice.yml
114
117
  - test/fixtures/quaderno_cassettes/new_item.yml
118
+ - test/fixtures/quaderno_cassettes/new_transaction.yml
115
119
  - test/fixtures/quaderno_cassettes/new_webhook.yml
116
120
  - test/fixtures/quaderno_cassettes/paid_expense.yml
117
121
  - test/fixtures/quaderno_cassettes/paid_invoice.yml
@@ -132,6 +136,7 @@ files:
132
136
  - test/unit/test_quaderno_invoices.rb
133
137
  - test/unit/test_quaderno_items.rb
134
138
  - test/unit/test_quaderno_tax.rb
139
+ - test/unit/test_quaderno_transactions.rb
135
140
  - test/unit/test_quaderno_webhooks.rb
136
141
  homepage: http://github.com/quaderno/quaderno-ruby
137
142
  licenses: