quaderno 1.11.2 → 1.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +53 -1
- data/VERSION +1 -1
- data/changelog.md +3 -0
- data/lib/quaderno-ruby/base.rb +12 -2
- data/lib/quaderno-ruby/behavior/crud.rb +56 -11
- data/lib/quaderno-ruby/behavior/deliver.rb +10 -2
- data/lib/quaderno-ruby/behavior/payment.rb +23 -4
- data/lib/quaderno-ruby/behavior/retrieve.rb +11 -2
- data/lib/quaderno-ruby/collection.rb +22 -0
- data/lib/quaderno-ruby/helpers/authentication.rb +26 -0
- data/lib/quaderno-ruby.rb +4 -1
- data/quaderno.gemspec +16 -5
- data/test/fixtures/quaderno_cassettes/all_contacts.yml +11 -282
- data/test/fixtures/quaderno_cassettes/all_contacts_by_access_token.yml +56 -0
- data/test/fixtures/quaderno_cassettes/all_contacts_by_authentication_token.yml +57 -0
- data/test/fixtures/quaderno_cassettes/all_estimates.yml +10 -14
- data/test/fixtures/quaderno_cassettes/all_expenses.yml +14 -47
- data/test/fixtures/quaderno_cassettes/all_invoices.yml +13 -2873
- data/test/fixtures/quaderno_cassettes/all_items.yml +8 -8
- data/test/fixtures/quaderno_cassettes/all_receipts.yml +11 -14
- data/test/fixtures/quaderno_cassettes/all_webhooks.yml +40 -36
- data/test/fixtures/quaderno_cassettes/create_estimate_on_downgraded_API.yml +46 -318
- data/test/fixtures/quaderno_cassettes/create_expense_on_downgraded_API.yml +125 -357
- data/test/fixtures/quaderno_cassettes/create_invoice_on_downgraded_API.yml +45 -318
- data/test/fixtures/quaderno_cassettes/create_receipt_on_downgraded_API.yml +56 -53
- data/test/fixtures/quaderno_cassettes/deleted_contact.yml +40 -592
- data/test/fixtures/quaderno_cassettes/deleted_contact_by_access_token.yml +199 -0
- data/test/fixtures/quaderno_cassettes/deleted_contact_by_authentication_token.yml +199 -0
- data/test/fixtures/quaderno_cassettes/deleted_estimate.yml +40 -334
- data/test/fixtures/quaderno_cassettes/deleted_expense.yml +43 -364
- data/test/fixtures/quaderno_cassettes/deleted_invoice.yml +44 -3199
- data/test/fixtures/quaderno_cassettes/deleted_item.yml +22 -22
- data/test/fixtures/quaderno_cassettes/deleted_receipt.yml +43 -42
- data/test/fixtures/quaderno_cassettes/deleted_webhook.yml +48 -44
- data/test/fixtures/quaderno_cassettes/delivered_estimate.yml +25 -32
- data/test/fixtures/quaderno_cassettes/delivered_invoice.yml +29 -2888
- data/test/fixtures/quaderno_cassettes/delivered_receipt.yml +29 -29
- data/test/fixtures/quaderno_cassettes/evidence_invoice.yml +19 -354
- data/test/fixtures/quaderno_cassettes/found_contact.yml +19 -291
- data/test/fixtures/quaderno_cassettes/found_contact_by_access_token.yml +99 -0
- data/test/fixtures/quaderno_cassettes/found_contact_by_authentication_token.yml +100 -0
- data/test/fixtures/quaderno_cassettes/found_estimate.yml +20 -24
- data/test/fixtures/quaderno_cassettes/found_expense.yml +24 -94
- data/test/fixtures/quaderno_cassettes/found_invoice.yml +22 -2886
- data/test/fixtures/quaderno_cassettes/found_item.yml +18 -16
- data/test/fixtures/quaderno_cassettes/found_receipt.yml +21 -24
- data/test/fixtures/quaderno_cassettes/found_webhook.yml +24 -22
- data/test/fixtures/quaderno_cassettes/new_contact.yml +9 -7
- data/test/fixtures/quaderno_cassettes/new_contact_by_access_token.yml +48 -0
- data/test/fixtures/quaderno_cassettes/new_contact_by_authentication_token.yml +48 -0
- data/test/fixtures/quaderno_cassettes/new_estimate.yml +29 -320
- data/test/fixtures/quaderno_cassettes/new_evidence.yml +10 -8
- data/test/fixtures/quaderno_cassettes/new_expense.yml +42 -363
- data/test/fixtures/quaderno_cassettes/new_invoice.yml +29 -324
- data/test/fixtures/quaderno_cassettes/new_item.yml +10 -8
- data/test/fixtures/quaderno_cassettes/new_receipt.yml +28 -24
- data/test/fixtures/quaderno_cassettes/new_webhook.yml +16 -14
- data/test/fixtures/quaderno_cassettes/paid_expense.yml +22 -52
- data/test/fixtures/quaderno_cassettes/paid_invoice.yml +22 -2879
- data/test/fixtures/quaderno_cassettes/rate_limit.yml +5 -5
- data/test/fixtures/quaderno_cassettes/unpay_an_expense.yml +29 -61
- data/test/fixtures/quaderno_cassettes/unpay_an_invoice.yml +28 -2888
- data/test/fixtures/quaderno_cassettes/updated_contact.yml +22 -292
- data/test/fixtures/quaderno_cassettes/updated_contact_by_access_token.yml +101 -0
- data/test/fixtures/quaderno_cassettes/updated_contact_by_authentication_token.yml +102 -0
- data/test/fixtures/quaderno_cassettes/updated_estimate.yml +44 -353
- data/test/fixtures/quaderno_cassettes/updated_expense.yml +43 -346
- data/test/fixtures/quaderno_cassettes/updated_invoice.yml +43 -361
- data/test/fixtures/quaderno_cassettes/updated_item.yml +21 -17
- data/test/fixtures/quaderno_cassettes/updated_receipt.yml +47 -41
- data/test/fixtures/quaderno_cassettes/updated_webhook.yml +35 -31
- data/test/helper.rb +2 -1
- data/test/unit/test_quaderno_contacts.rb +1 -1
- data/test/unit/test_quaderno_contacts_thread_safe.rb +104 -0
- data/test/unit/test_quaderno_expenses.rb +5 -5
- metadata +15 -4
- data/test/fixtures/quaderno_cassettes/calculate_tax.yml +0 -85
- data/test/fixtures/quaderno_cassettes/wrong_token.yml +0 -36
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/estimates.json
|
5
|
+
uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/estimates.json?
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -21,9 +21,9 @@ http_interactions:
|
|
21
21
|
x-ratelimit-limit:
|
22
22
|
- '2000'
|
23
23
|
x-ratelimit-reset:
|
24
|
-
- '
|
24
|
+
- '15'
|
25
25
|
x-ratelimit-remaining:
|
26
|
-
- '
|
26
|
+
- '100'
|
27
27
|
x-pages-currentpage:
|
28
28
|
- '1'
|
29
29
|
x-pages-totalpages:
|
@@ -31,28 +31,24 @@ http_interactions:
|
|
31
31
|
content-type:
|
32
32
|
- application/json; charset=utf-8
|
33
33
|
etag:
|
34
|
-
- '"
|
34
|
+
- '"b1aa095a3d37cb3a66bdf93f658ff2ee"'
|
35
35
|
cache-control:
|
36
36
|
- max-age=0, private, must-revalidate
|
37
37
|
x-request-id:
|
38
|
-
-
|
38
|
+
- 4b668b53-4776-45f0-b6f3-515e65e9a5d4
|
39
39
|
x-runtime:
|
40
|
-
- '
|
40
|
+
- '0.395275'
|
41
41
|
connection:
|
42
42
|
- close
|
43
43
|
server:
|
44
44
|
- thin
|
45
45
|
body:
|
46
46
|
encoding: UTF-8
|
47
|
-
string: '[{"id":
|
48
|
-
|
49
|
-
(21.00%)","amount_cents":
|
50
|
-
Diepstraten"},"street_line_1":null,"street_line_2":null,"city":null,"region":null,"postal_code":null,"po_number":null,"currency":"EUR","items":[{"id":1005,"description":"1","quantity":"1.0","unit_price_cents":"1000.0","discount_rate":"0.0","tax_1_name":"BTW","tax_1_rate":21.0,"tax_2_name":"","tax_2_rate":null,"reference":"","subtotal_cents":"1000.0","discount_cents":"0.0","gross_amount":"1000.0"},{"id":1006,"description":"2","quantity":"1.0","unit_price_cents":"1000.0","discount_rate":"0.0","tax_1_name":"","tax_1_rate":null,"tax_2_name":"","tax_2_rate":null,"reference":"","subtotal_cents":"1000.0","discount_cents":"0.0","gross_amount":"1000.0"}],"subtotal_cents":"2000.0","discount_cents":"0.0","taxes":[{"label":"BTW
|
51
|
-
(21.00%)","amount_cents":210}],"total_cents":2210,"payment_details":null,"notes":null,"state":"invoiced","tag_list":[],"secure_id":"a95cc19fd4def0024964a8d6aedd6d24de960e3f","permalink":"http://development.lvh.me:3000/estimate/a95cc19fd4def0024964a8d6aedd6d24de960e3f","url":"http://development.lvh.me:3000/api/estimates/995.json"},{"id":992,"number":"0000001","issue_date":"2016-06-02","created_at":1464869069,"contact":{"id":58,"full_name":"Test_OCP
|
52
|
-
Diepstraten"},"street_line_1":null,"street_line_2":null,"city":null,"region":null,"postal_code":null,"po_number":null,"currency":"EUR","items":[{"id":1000,"description":"1","quantity":"1.0","unit_price_cents":"0.0","discount_rate":"0.0","tax_1_name":"BTW","tax_1_rate":21.0,"tax_2_name":"","tax_2_rate":null,"reference":"","subtotal_cents":"0.0","discount_cents":"0.0","gross_amount":"0.0"},{"id":1001,"description":"2","quantity":"1.0","unit_price_cents":"0.0","discount_rate":"0.0","tax_1_name":"","tax_1_rate":null,"tax_2_name":"","tax_2_rate":null,"reference":"","subtotal_cents":"0.0","discount_cents":"0.0","gross_amount":"0.0"}],"subtotal_cents":"0.0","discount_cents":"0.0","taxes":[{"label":"BTW
|
53
|
-
(21.00%)","amount_cents":0}],"total_cents":0,"payment_details":null,"notes":null,"state":"invoiced","tag_list":[],"secure_id":"91e361b2d900856d8e7e230b4175956d0f163162","permalink":"http://development.lvh.me:3000/estimate/91e361b2d900856d8e7e230b4175956d0f163162","url":"http://development.lvh.me:3000/api/estimates/992.json"}]'
|
47
|
+
string: '[{"id":175,"number":"0001","issue_date":"2017-06-09","created_at":1497013347,"contact":{"id":42,"full_name":"Cidi
|
48
|
+
Campidocti"},"country":"ES","street_line_1":null,"street_line_2":null,"city":null,"region":null,"postal_code":null,"po_number":null,"currency":"EUR","items":[{"id":176,"description":"Something","quantity":"1.0","unit_price_cents":"2000.0","discount_rate":"0.0","tax_1_name":"IVA","tax_1_rate":21.0,"tax_2_name":"","tax_2_rate":null,"reference":"","subtotal_cents":"2000.0","discount_cents":"0.0","gross_amount":"2000.0"}],"subtotal_cents":"2000.0","discount_cents":"0.0","taxes":[{"label":"IVA
|
49
|
+
(21.00%)","amount_cents":420}],"total_cents":2420,"payment_details":null,"notes":null,"state":"outstanding","tag_list":[],"secure_id":"f2f35a037263fe1d78a94ca62ffa1b768e8e16c6","permalink":"http://development.lvh.me:3000/estimate/f2f35a037263fe1d78a94ca62ffa1b768e8e16c6","url":"http://development.lvh.me:3000/api/estimates/175.json","custom_metadata":{}}]'
|
54
50
|
http_version: '1.1'
|
55
|
-
recorded_at:
|
51
|
+
recorded_at: Fri, 09 Jun 2017 13:06:24 GMT
|
56
52
|
- request:
|
57
53
|
method: get
|
58
54
|
uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/ping.json
|
@@ -74,9 +70,9 @@ http_interactions:
|
|
74
70
|
x-ratelimit-limit:
|
75
71
|
- '2000'
|
76
72
|
x-ratelimit-reset:
|
77
|
-
- '
|
73
|
+
- '15'
|
78
74
|
x-ratelimit-remaining:
|
79
|
-
- '
|
75
|
+
- '99'
|
80
76
|
content-type:
|
81
77
|
- application/json; charset=utf-8
|
82
78
|
etag:
|
@@ -84,9 +80,9 @@ http_interactions:
|
|
84
80
|
cache-control:
|
85
81
|
- max-age=0, private, must-revalidate
|
86
82
|
x-request-id:
|
87
|
-
-
|
83
|
+
- 90fc57c3-a86a-48e5-8045-5b7024ff5a67
|
88
84
|
x-runtime:
|
89
|
-
- '0.
|
85
|
+
- '0.166282'
|
90
86
|
connection:
|
91
87
|
- close
|
92
88
|
server:
|
@@ -95,10 +91,10 @@ http_interactions:
|
|
95
91
|
encoding: UTF-8
|
96
92
|
string: '{"status":"OK"}'
|
97
93
|
http_version: '1.1'
|
98
|
-
recorded_at:
|
94
|
+
recorded_at: Fri, 09 Jun 2017 13:06:24 GMT
|
99
95
|
- request:
|
100
96
|
method: get
|
101
|
-
uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/estimates/
|
97
|
+
uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/estimates/175/deliver.json
|
102
98
|
body:
|
103
99
|
encoding: US-ASCII
|
104
100
|
string: ''
|
@@ -109,35 +105,32 @@ http_interactions:
|
|
109
105
|
- Basic c2tfdGVzdF9CN3hYclRzcGZlR3VrUXFHTjFwSzo=
|
110
106
|
response:
|
111
107
|
status:
|
112
|
-
code:
|
113
|
-
message:
|
108
|
+
code: 422
|
109
|
+
message: Unprocessable Entity
|
114
110
|
headers:
|
115
111
|
x-frame-options:
|
116
112
|
- ALLOWALL
|
117
113
|
x-ratelimit-limit:
|
118
114
|
- '2000'
|
119
115
|
x-ratelimit-reset:
|
120
|
-
- '
|
116
|
+
- '14'
|
121
117
|
x-ratelimit-remaining:
|
122
|
-
- '
|
118
|
+
- '98'
|
123
119
|
content-type:
|
124
120
|
- application/json; charset=utf-8
|
125
|
-
etag:
|
126
|
-
- '"bfa123c11b608a95baca6b72c1cea8b5"'
|
127
121
|
cache-control:
|
128
|
-
-
|
122
|
+
- no-cache
|
129
123
|
x-request-id:
|
130
|
-
-
|
124
|
+
- 69f5b9c7-d537-4660-97a4-bbd07df6f0eb
|
131
125
|
x-runtime:
|
132
|
-
- '
|
126
|
+
- '0.308794'
|
133
127
|
connection:
|
134
128
|
- close
|
135
129
|
server:
|
136
130
|
- thin
|
137
131
|
body:
|
138
132
|
encoding: UTF-8
|
139
|
-
string: '{"
|
140
|
-
Diepstraten","currency":"EUR","gross_amount_cents":2000,"total_cents":2210,"amount_paid_cents":0,"exchange_rate":"1.0","exchange_cents":2210,"po_number":null,"due_days":null,"due_date":null,"valid_until":null,"payment_details":null,"notes":null,"permalink":"3ba0301fb141753b1a9e81f8e2e87f8e4d27436b","recurring_document":null,"start_date":null,"end_date":null,"renewal_date":null,"frequency":null,"delivery":null,"state":"invoiced","created_at":"2016-06-08T13:16:11.000Z","updated_at":"2016-06-23T11:25:32.078Z","attachments_count":0,"processor_id":null,"subject":null,"transaction_id":null,"street_line_1":null,"street_line_2":null,"city":null,"postal_code":null,"region":null,"country":"NL","processor":null,"processor_fee_cents":null,"interval_count":0,"delivery_state":"delivered","vat_number":null,"tax_id":""}'
|
133
|
+
string: '{"delivery_recipients":["can''t be blank","is invalid"]}'
|
141
134
|
http_version: '1.1'
|
142
|
-
recorded_at:
|
135
|
+
recorded_at: Fri, 09 Jun 2017 13:06:24 GMT
|
143
136
|
recorded_with: VCR 2.9.2
|