quaderno 1.9.1 → 1.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -6
  3. data/Gemfile.lock +8 -5
  4. data/README.md +7 -1
  5. data/VERSION +1 -1
  6. data/changelog.md +5 -0
  7. data/lib/quaderno-ruby/behavior/crud.rb +30 -36
  8. data/lib/quaderno-ruby/behavior/payment.rb +12 -19
  9. data/lib/quaderno-ruby/behavior/retrieve.rb +20 -0
  10. data/lib/quaderno-ruby/contact.rb +1 -0
  11. data/lib/quaderno-ruby/payment.rb +0 -2
  12. data/lib/quaderno-ruby/tax.rb +3 -3
  13. data/lib/quaderno-ruby/webhook.rb +0 -2
  14. data/lib/quaderno-ruby.rb +1 -1
  15. data/quaderno.gemspec +15 -3
  16. data/test/fixtures/quaderno_cassettes/all_contacts.yml +295 -31
  17. data/test/fixtures/quaderno_cassettes/all_estimates.yml +28 -36
  18. data/test/fixtures/quaderno_cassettes/all_expenses.yml +60 -34
  19. data/test/fixtures/quaderno_cassettes/all_invoices.yml +2888 -36
  20. data/test/fixtures/quaderno_cassettes/all_items.yml +22 -27
  21. data/test/fixtures/quaderno_cassettes/all_receipts.yml +56 -0
  22. data/test/fixtures/quaderno_cassettes/all_webhooks.yml +98 -126
  23. data/test/fixtures/quaderno_cassettes/calculate_tax.yml +38 -62
  24. data/test/fixtures/quaderno_cassettes/create_estimate_on_downgraded_API.yml +428 -0
  25. data/test/fixtures/quaderno_cassettes/create_expense_on_downgraded_API.yml +510 -0
  26. data/test/fixtures/quaderno_cassettes/create_invoice_on_downgraded_API.yml +432 -0
  27. data/test/fixtures/quaderno_cassettes/create_receipt_on_downgraded_API.yml +193 -0
  28. data/test/fixtures/quaderno_cassettes/deleted_contact.yml +642 -113
  29. data/test/fixtures/quaderno_cassettes/deleted_estimate.yml +385 -120
  30. data/test/fixtures/quaderno_cassettes/deleted_expense.yml +414 -118
  31. data/test/fixtures/quaderno_cassettes/deleted_invoice.yml +3249 -120
  32. data/test/fixtures/quaderno_cassettes/deleted_item.yml +60 -75
  33. data/test/fixtures/quaderno_cassettes/deleted_receipt.yml +222 -0
  34. data/test/fixtures/quaderno_cassettes/deleted_webhook.yml +120 -152
  35. data/test/fixtures/quaderno_cassettes/delivered_estimate.yml +76 -89
  36. data/test/fixtures/quaderno_cassettes/delivered_invoice.yml +2935 -89
  37. data/test/fixtures/quaderno_cassettes/delivered_receipt.yml +140 -0
  38. data/test/fixtures/quaderno_cassettes/found_contact.yml +319 -60
  39. data/test/fixtures/quaderno_cassettes/found_estimate.yml +53 -69
  40. data/test/fixtures/quaderno_cassettes/found_expense.yml +121 -65
  41. data/test/fixtures/quaderno_cassettes/found_invoice.yml +2916 -67
  42. data/test/fixtures/quaderno_cassettes/found_item.yml +50 -60
  43. data/test/fixtures/quaderno_cassettes/found_receipt.yml +101 -0
  44. data/test/fixtures/quaderno_cassettes/found_webhook.yml +60 -76
  45. data/test/fixtures/quaderno_cassettes/new_contact.yml +22 -29
  46. data/test/fixtures/quaderno_cassettes/new_estimate.yml +357 -84
  47. data/test/fixtures/quaderno_cassettes/new_expense.yml +414 -118
  48. data/test/fixtures/quaderno_cassettes/new_invoice.yml +361 -84
  49. data/test/fixtures/quaderno_cassettes/new_item.yml +22 -29
  50. data/test/fixtures/quaderno_cassettes/new_receipt.yml +169 -0
  51. data/test/fixtures/quaderno_cassettes/new_webhook.yml +38 -50
  52. data/test/fixtures/quaderno_cassettes/paid_expense.yml +79 -63
  53. data/test/fixtures/quaderno_cassettes/paid_invoice.yml +2907 -65
  54. data/test/fixtures/quaderno_cassettes/rate_limit.yml +22 -26
  55. data/test/fixtures/quaderno_cassettes/unpay_an_expense.yml +98 -85
  56. data/test/fixtures/quaderno_cassettes/unpay_an_invoice.yml +2926 -87
  57. data/test/fixtures/quaderno_cassettes/updated_contact.yml +318 -62
  58. data/test/fixtures/quaderno_cassettes/updated_estimate.yml +402 -116
  59. data/test/fixtures/quaderno_cassettes/updated_expense.yml +395 -113
  60. data/test/fixtures/quaderno_cassettes/updated_invoice.yml +410 -116
  61. data/test/fixtures/quaderno_cassettes/updated_item.yml +49 -61
  62. data/test/fixtures/quaderno_cassettes/updated_receipt.yml +214 -0
  63. data/test/fixtures/quaderno_cassettes/updated_webhook.yml +82 -105
  64. data/test/fixtures/quaderno_cassettes/wrong_token.yml +11 -25
  65. data/test/helper.rb +4 -0
  66. data/test/unit/test_quaderno_contacts.rb +18 -19
  67. data/test/unit/test_quaderno_estimates.rb +58 -31
  68. data/test/unit/test_quaderno_expenses.rb +68 -41
  69. data/test/unit/test_quaderno_invoices.rb +74 -47
  70. data/test/unit/test_quaderno_items.rb +27 -26
  71. data/test/unit/test_quaderno_receipts.rb +156 -0
  72. data/test/unit/test_quaderno_tax.rb +10 -10
  73. data/test/unit/test_quaderno_webhooks.rb +19 -20
  74. metadata +14 -2
@@ -2,142 +2,127 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: http://RsNaLsNr1KZcdrQRKKKk@uruk-1066.sandbox-quadernoapp.com/api/v1/items.json
5
+ uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/items.json
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
+ accept:
11
+ - application/json
10
12
  authorization:
11
- - Basic UnNOYUxzTnIxS1pjZHJRUktLS2s6
13
+ - Basic c2tfdGVzdF9CN3hYclRzcGZlR3VrUXFHTjFwSzo=
12
14
  response:
13
15
  status:
14
16
  code: 200
15
17
  message: OK
16
18
  headers:
17
- server:
18
- - nginx/1.4.5
19
- date:
20
- - Tue, 01 Jul 2014 09:08:02 GMT
21
- content-type:
22
- - application/json; charset=utf-8
23
- transfer-encoding:
24
- - chunked
25
- connection:
26
- - close
27
- status:
28
- - 200 OK
19
+ x-frame-options:
20
+ - ALLOWALL
29
21
  x-ratelimit-limit:
30
22
  - '2000'
23
+ x-ratelimit-reset:
24
+ - '5'
31
25
  x-ratelimit-remaining:
32
- - '1931'
33
- x-ua-compatible:
34
- - IE=Edge,chrome=1
26
+ - '93'
27
+ content-type:
28
+ - application/json; charset=utf-8
35
29
  etag:
36
- - ! '"dd53748ab46bda52a703f55094269639"'
30
+ - '"1f73118f8016f1b372686f7f951a224d"'
37
31
  cache-control:
38
- - must-revalidate, private, max-age=0
32
+ - max-age=0, private, must-revalidate
39
33
  x-request-id:
40
- - 5cafe6879cb2e2f3ed33d850db0a785b
34
+ - 6b501e51-cf77-4f8b-9cb4-04e849d4e97c
41
35
  x-runtime:
42
- - '0.070997'
43
- x-rack-cache:
44
- - miss
36
+ - '0.665872'
37
+ connection:
38
+ - close
39
+ server:
40
+ - thin
45
41
  body:
46
- encoding: US-ASCII
47
- string: ! '[{"id":23943,"code":"008","name":"Pizza the Hutt","unit_cost":"0.0","stock":null,"url":"http://uruk-1066.sandbox-quadernoapp.com/api/v1/items/23943"},{"id":23942,"code":"007","name":"Techtoys
48
- MechaGodzilla 13cm fully posable","unit_cost":"0.0","stock":null,"url":"http://uruk-1066.sandbox-quadernoapp.com/api/v1/items/23942"},{"id":23944,"code":"000000","name":"Test_Skynet","unit_cost":"21.0","stock":null,"url":"http://uruk-1066.sandbox-quadernoapp.com/api/v1/items/23944"}]'
42
+ encoding: UTF-8
43
+ string: '[{"id":4,"code":"1466679103","name":"Test_OCP","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/4"},{"id":7,"code":"1466679630","name":"Test_OCP","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/7"},{"id":10,"code":"1466680676","name":"Test_OCP","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/10"},{"id":3,"code":"1466679102","name":"Test_Skynet","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/3"},{"id":6,"code":"1466679628","name":"Test_Skynet","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/6"},{"id":9,"code":"1466680674","name":"Test_Skynet","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/9"},{"id":11,"code":"000000","name":"Test_Skynet","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/11"}]'
49
44
  http_version: '1.1'
50
- recorded_at: Tue, 01 Jul 2014 09:08:02 GMT
45
+ recorded_at: Thu, 23 Jun 2016 11:27:49 GMT
51
46
  - request:
52
47
  method: delete
53
- uri: http://RsNaLsNr1KZcdrQRKKKk@uruk-1066.sandbox-quadernoapp.com/api/v1/items/23944.json
48
+ uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/items/11.json
54
49
  body:
55
50
  encoding: US-ASCII
56
51
  string: ''
57
52
  headers:
53
+ accept:
54
+ - application/json
58
55
  authorization:
59
- - Basic UnNOYUxzTnIxS1pjZHJRUktLS2s6
56
+ - Basic c2tfdGVzdF9CN3hYclRzcGZlR3VrUXFHTjFwSzo=
60
57
  response:
61
58
  status:
62
59
  code: 204
63
60
  message: No Content
64
61
  headers:
65
- server:
66
- - nginx/1.4.5
67
- date:
68
- - Tue, 01 Jul 2014 09:08:03 GMT
69
- connection:
70
- - close
71
- status:
72
- - 204 No Content
62
+ x-frame-options:
63
+ - ALLOWALL
73
64
  x-ratelimit-limit:
74
65
  - '2000'
66
+ x-ratelimit-reset:
67
+ - '4'
75
68
  x-ratelimit-remaining:
76
- - '1930'
77
- x-ua-compatible:
78
- - IE=Edge,chrome=1
69
+ - '92'
79
70
  cache-control:
80
71
  - no-cache
81
- set-cookie:
82
- - _quaderno_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFVEkiJTUyZTg2YzQ4ZmI3NmRiYzRlYTdiYTE3NmQyYjc5OWYwBjsAVA%3D%3D--98b907c01c81f6a3831097aca93088d2d5bc127f;
83
- domain=sandbox-quadernoapp.com; path=/; HttpOnly
84
72
  x-request-id:
85
- - 1c52886a8e4524a6bd2bb5da46e6439d
73
+ - 661f8acf-6cae-4a30-90da-6a05b1ab3597
86
74
  x-runtime:
87
- - '0.062330'
88
- x-rack-cache:
89
- - invalidate, pass
75
+ - '0.759815'
76
+ connection:
77
+ - close
78
+ server:
79
+ - thin
90
80
  body:
91
81
  encoding: US-ASCII
92
82
  string: ''
93
83
  http_version: '1.1'
94
- recorded_at: Tue, 01 Jul 2014 09:08:03 GMT
84
+ recorded_at: Thu, 23 Jun 2016 11:27:50 GMT
95
85
  - request:
96
86
  method: get
97
- uri: http://RsNaLsNr1KZcdrQRKKKk@uruk-1066.sandbox-quadernoapp.com/api/v1/items.json
87
+ uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/items.json
98
88
  body:
99
89
  encoding: US-ASCII
100
90
  string: ''
101
91
  headers:
92
+ accept:
93
+ - application/json
102
94
  authorization:
103
- - Basic UnNOYUxzTnIxS1pjZHJRUktLS2s6
95
+ - Basic c2tfdGVzdF9CN3hYclRzcGZlR3VrUXFHTjFwSzo=
104
96
  response:
105
97
  status:
106
98
  code: 200
107
99
  message: OK
108
100
  headers:
109
- server:
110
- - nginx/1.4.5
111
- date:
112
- - Tue, 01 Jul 2014 09:08:03 GMT
113
- content-type:
114
- - application/json; charset=utf-8
115
- transfer-encoding:
116
- - chunked
117
- connection:
118
- - close
119
- status:
120
- - 200 OK
101
+ x-frame-options:
102
+ - ALLOWALL
121
103
  x-ratelimit-limit:
122
104
  - '2000'
105
+ x-ratelimit-reset:
106
+ - '4'
123
107
  x-ratelimit-remaining:
124
- - '1929'
125
- x-ua-compatible:
126
- - IE=Edge,chrome=1
108
+ - '91'
109
+ content-type:
110
+ - application/json; charset=utf-8
127
111
  etag:
128
- - ! '"484111898eb77f3321009a9c45671d7c"'
112
+ - '"dd526d68d8d83045a7883bb006dec055"'
129
113
  cache-control:
130
- - must-revalidate, private, max-age=0
114
+ - max-age=0, private, must-revalidate
131
115
  x-request-id:
132
- - 3ba00456969a5c0c1149291a6ff9832c
116
+ - a2f9c403-13b3-46ca-a796-4f177c0de4ba
133
117
  x-runtime:
134
- - '0.057727'
135
- x-rack-cache:
136
- - miss
118
+ - '0.733462'
119
+ connection:
120
+ - close
121
+ server:
122
+ - thin
137
123
  body:
138
- encoding: US-ASCII
139
- string: ! '[{"id":23943,"code":"008","name":"Pizza the Hutt","unit_cost":"0.0","stock":null,"url":"http://uruk-1066.sandbox-quadernoapp.com/api/v1/items/23943"},{"id":23942,"code":"007","name":"Techtoys
140
- MechaGodzilla 13cm fully posable","unit_cost":"0.0","stock":null,"url":"http://uruk-1066.sandbox-quadernoapp.com/api/v1/items/23942"}]'
124
+ encoding: UTF-8
125
+ string: '[{"id":4,"code":"1466679103","name":"Test_OCP","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/4"},{"id":7,"code":"1466679630","name":"Test_OCP","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/7"},{"id":10,"code":"1466680676","name":"Test_OCP","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/10"},{"id":3,"code":"1466679102","name":"Test_Skynet","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/3"},{"id":6,"code":"1466679628","name":"Test_Skynet","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/6"},{"id":9,"code":"1466680674","name":"Test_Skynet","unit_cost":"21.0","stock":null,"url":"http://development.lvh.me:3000/api/items/9"}]'
141
126
  http_version: '1.1'
142
- recorded_at: Tue, 01 Jul 2014 09:08:03 GMT
127
+ recorded_at: Thu, 23 Jun 2016 11:27:50 GMT
143
128
  recorded_with: VCR 2.9.2
@@ -0,0 +1,222 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/contacts.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: first_name=Test%20customer
9
+ headers:
10
+ accept:
11
+ - application/json
12
+ authorization:
13
+ - Basic c2tfdGVzdF9CN3hYclRzcGZlR3VrUXFHTjFwSzo=
14
+ response:
15
+ status:
16
+ code: 201
17
+ message: Created
18
+ headers:
19
+ x-frame-options:
20
+ - ALLOWALL
21
+ x-ratelimit-limit:
22
+ - '2000'
23
+ x-ratelimit-reset:
24
+ - '8'
25
+ x-ratelimit-remaining:
26
+ - '96'
27
+ content-type:
28
+ - application/json; charset=utf-8
29
+ etag:
30
+ - '"454ad7885ca92c5b233487d9d1ce2465"'
31
+ cache-control:
32
+ - max-age=0, private, must-revalidate
33
+ x-request-id:
34
+ - c5b2ee1c-4aee-43f8-bd29-995bc651dda0
35
+ x-runtime:
36
+ - '0.423220'
37
+ connection:
38
+ - close
39
+ server:
40
+ - thin
41
+ body:
42
+ encoding: UTF-8
43
+ string: '{"id":89,"kind":"company","created_at":1466681281,"full_name":"Test
44
+ customer","contact_name":null,"street_line_1":null,"street_line_2":null,"postal_code":null,"city":null,"region":null,"country":"ES","phone_1":null,"phone_2":null,"fax":null,"email":null,"web":null,"discount":null,"tax_id":null,"vat_number":null,"bank_account":null,"language":"ES","notes":null,"secure_id":"7895520a99530f82315935868b6b9df1857df66b","permalink":"http://development.lvh.me:3000/billing/7895520a99530f82315935868b6b9df1857df66b","url":"http://development.lvh.me:3000/api/contacts/89"}'
45
+ http_version: '1.1'
46
+ recorded_at: Thu, 23 Jun 2016 11:28:01 GMT
47
+ - request:
48
+ method: post
49
+ uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/receipts.json
50
+ body:
51
+ encoding: UTF-8
52
+ string: contact_id=89&currency=EUR&items_attributes[][description]=Aircraft&items_attributes[][quantity]=1.0&items_attributes[][unit_price]=0.0&tags=tnt&payment_method=cash&notes=
53
+ headers:
54
+ accept:
55
+ - application/json
56
+ authorization:
57
+ - Basic c2tfdGVzdF9CN3hYclRzcGZlR3VrUXFHTjFwSzo=
58
+ response:
59
+ status:
60
+ code: 201
61
+ message: Created
62
+ headers:
63
+ x-frame-options:
64
+ - ALLOWALL
65
+ x-ratelimit-limit:
66
+ - '2000'
67
+ x-ratelimit-reset:
68
+ - '7'
69
+ x-ratelimit-remaining:
70
+ - '95'
71
+ content-type:
72
+ - application/json; charset=utf-8
73
+ etag:
74
+ - '"6ce46835742ddb14e5abfcbf9e730406"'
75
+ cache-control:
76
+ - max-age=0, private, must-revalidate
77
+ x-request-id:
78
+ - 4d91825b-9596-4544-89e7-7afb50228cd5
79
+ x-runtime:
80
+ - '3.472656'
81
+ connection:
82
+ - close
83
+ server:
84
+ - thin
85
+ body:
86
+ encoding: UTF-8
87
+ string: '{"id":1070,"number":"0000006","issue_date":"2016-06-23","created_at":1466681282,"contact":{"id":89,"full_name":"Test
88
+ customer"},"street_line_1":null,"street_line_2":null,"city":null,"region":null,"postal_code":null,"po_number":null,"currency":"EUR","exchange_rate":"1.9558","items":[{"id":3089,"description":"Aircraft","quantity":"1.0","unit_price_cents":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"reference":null,"subtotal_cents":"0.0","discount_cents":"0.0","gross_amount_cents":"0.0"}],"subtotal_cents":"0.0","discount_cents":"0.0","taxes":[],"payments":[{"id":33,"date":"2016-06-23","payment_method":"cash","amount_cents":0}],"notes":null,"state":"paid","tag_list":[],"secure_id":"3efd0600096837d730b3f7859ac922fb919d1541","permalink":"http://development.lvh.me:3000/receipt/3efd0600096837d730b3f7859ac922fb919d1541","pdf":"http://development.lvh.me:3000/receipt/3efd0600096837d730b3f7859ac922fb919d1541.pdf","url":"http://development.lvh.me:3000/api/receipts/1070.json","processor":null,"processor_id":null}'
89
+ http_version: '1.1'
90
+ recorded_at: Thu, 23 Jun 2016 11:28:05 GMT
91
+ - request:
92
+ method: delete
93
+ uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/receipts/1070.json
94
+ body:
95
+ encoding: US-ASCII
96
+ string: ''
97
+ headers:
98
+ accept:
99
+ - application/json
100
+ authorization:
101
+ - Basic c2tfdGVzdF9CN3hYclRzcGZlR3VrUXFHTjFwSzo=
102
+ response:
103
+ status:
104
+ code: 204
105
+ message: No Content
106
+ headers:
107
+ x-frame-options:
108
+ - ALLOWALL
109
+ x-ratelimit-limit:
110
+ - '2000'
111
+ x-ratelimit-reset:
112
+ - '4'
113
+ x-ratelimit-remaining:
114
+ - '94'
115
+ cache-control:
116
+ - no-cache
117
+ x-request-id:
118
+ - e4e45f0e-cf99-4bd7-8ba9-6166b7f50423
119
+ x-runtime:
120
+ - '0.693659'
121
+ connection:
122
+ - close
123
+ server:
124
+ - thin
125
+ body:
126
+ encoding: US-ASCII
127
+ string: ''
128
+ http_version: '1.1'
129
+ recorded_at: Thu, 23 Jun 2016 11:28:05 GMT
130
+ - request:
131
+ method: delete
132
+ uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/contacts/89.json
133
+ body:
134
+ encoding: US-ASCII
135
+ string: ''
136
+ headers:
137
+ accept:
138
+ - application/json
139
+ authorization:
140
+ - Basic c2tfdGVzdF9CN3hYclRzcGZlR3VrUXFHTjFwSzo=
141
+ response:
142
+ status:
143
+ code: 204
144
+ message: No Content
145
+ headers:
146
+ x-frame-options:
147
+ - ALLOWALL
148
+ x-ratelimit-limit:
149
+ - '2000'
150
+ x-ratelimit-reset:
151
+ - '3'
152
+ x-ratelimit-remaining:
153
+ - '93'
154
+ cache-control:
155
+ - no-cache
156
+ x-request-id:
157
+ - c2afd326-9b08-4359-acfa-aefaf90991ec
158
+ x-runtime:
159
+ - '0.686760'
160
+ connection:
161
+ - close
162
+ server:
163
+ - thin
164
+ body:
165
+ encoding: US-ASCII
166
+ string: ''
167
+ http_version: '1.1'
168
+ recorded_at: Thu, 23 Jun 2016 11:28:06 GMT
169
+ - request:
170
+ method: get
171
+ uri: http://sk_test_B7xXrTspfeGukQqGN1pK@development.lvh.me:3000/api/receipts.json
172
+ body:
173
+ encoding: US-ASCII
174
+ string: ''
175
+ headers:
176
+ accept:
177
+ - application/json
178
+ authorization:
179
+ - Basic c2tfdGVzdF9CN3hYclRzcGZlR3VrUXFHTjFwSzo=
180
+ response:
181
+ status:
182
+ code: 200
183
+ message: OK
184
+ headers:
185
+ x-frame-options:
186
+ - ALLOWALL
187
+ x-ratelimit-limit:
188
+ - '2000'
189
+ x-ratelimit-reset:
190
+ - '2'
191
+ x-ratelimit-remaining:
192
+ - '92'
193
+ x-pages-currentpage:
194
+ - '1'
195
+ x-pages-totalpages:
196
+ - '1'
197
+ content-type:
198
+ - application/json; charset=utf-8
199
+ etag:
200
+ - '"b3b66954c987c74b8ebbdba19fda50af"'
201
+ cache-control:
202
+ - max-age=0, private, must-revalidate
203
+ x-request-id:
204
+ - 76357d92-455a-4940-8d38-b7d627f2b073
205
+ x-runtime:
206
+ - '0.882198'
207
+ connection:
208
+ - close
209
+ server:
210
+ - thin
211
+ body:
212
+ encoding: UTF-8
213
+ string: '[{"id":1056,"number":"0000005","issue_date":"2016-06-23","created_at":1466680696,"contact":{"id":85,"full_name":"Test
214
+ customer"},"street_line_1":null,"street_line_2":null,"city":null,"region":null,"postal_code":null,"po_number":null,"currency":"EUR","exchange_rate":"1.9558","items":[{"id":3075,"description":"Aircraft","quantity":"1.0","unit_price_cents":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"reference":null,"subtotal_cents":"0.0","discount_cents":"0.0","gross_amount_cents":"0.0"}],"subtotal_cents":"0.0","discount_cents":"0.0","taxes":[],"payments":[{"id":27,"date":"2016-06-23","payment_method":"cash","amount_cents":0}],"notes":"Show
215
+ me the moneeeeeeeyy!!!!","state":"paid","tag_list":[],"secure_id":"24c7be97cfdae58052852e11a7df8f5968f90e06","permalink":"http://development.lvh.me:3000/receipt/24c7be97cfdae58052852e11a7df8f5968f90e06","pdf":"http://development.lvh.me:3000/receipt/24c7be97cfdae58052852e11a7df8f5968f90e06.pdf","url":"http://development.lvh.me:3000/api/receipts/1056.json","processor":null,"processor_id":null},{"id":1055,"number":"0000004","issue_date":"2016-06-23","created_at":1466680690,"contact":{"id":84,"full_name":"Test
216
+ customer"},"street_line_1":null,"street_line_2":null,"city":null,"region":null,"postal_code":null,"po_number":null,"currency":"EUR","exchange_rate":"1.9558","items":[{"id":3074,"description":"Aircraft","quantity":"1.0","unit_price_cents":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"reference":null,"subtotal_cents":"0.0","discount_cents":"0.0","gross_amount_cents":"0.0"}],"subtotal_cents":"0.0","discount_cents":"0.0","taxes":[],"payments":[{"id":26,"date":"2016-06-23","payment_method":"cash","amount_cents":0}],"notes":null,"state":"paid","tag_list":[],"secure_id":"2e21a8451f234c2a673d3576f178faab516ec017","permalink":"http://development.lvh.me:3000/receipt/2e21a8451f234c2a673d3576f178faab516ec017","pdf":"http://development.lvh.me:3000/receipt/2e21a8451f234c2a673d3576f178faab516ec017.pdf","url":"http://development.lvh.me:3000/api/receipts/1055.json","processor":null,"processor_id":null},{"id":1054,"number":"0000003","issue_date":"2016-06-23","created_at":1466680679,"contact":{"id":82,"full_name":"Test
217
+ customer"},"street_line_1":null,"street_line_2":null,"city":null,"region":null,"postal_code":null,"po_number":null,"currency":"EUR","exchange_rate":"1.9558","items":[{"id":3073,"description":"Aircraft","quantity":"1.0","unit_price_cents":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"reference":null,"subtotal_cents":"0.0","discount_cents":"0.0","gross_amount_cents":"0.0"}],"subtotal_cents":"0.0","discount_cents":"0.0","taxes":[],"payments":[{"id":25,"date":"2016-06-23","payment_method":"cash","amount_cents":0}],"notes":null,"state":"paid","tag_list":[],"secure_id":"80ff611baa512d72f5132b28feacce20997adb4e","permalink":"http://development.lvh.me:3000/receipt/80ff611baa512d72f5132b28feacce20997adb4e","pdf":"http://development.lvh.me:3000/receipt/80ff611baa512d72f5132b28feacce20997adb4e.pdf","url":"http://development.lvh.me:3000/api/receipts/1054.json","processor":null,"processor_id":null},{"id":985,"number":"0000002","issue_date":"2016-06-01","created_at":1464785121,"contact":{"id":56,"full_name":"William
218
+ Tell"},"street_line_1":null,"street_line_2":null,"city":null,"region":null,"postal_code":null,"po_number":null,"currency":"EUR","exchange_rate":"1.0","items":[{"id":991,"description":"Something","quantity":"1.0","unit_price_cents":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"reference":null,"subtotal_cents":"0.0","discount_cents":"0.0","gross_amount_cents":"0.0"}],"subtotal_cents":"0.0","discount_cents":"0.0","taxes":[],"payments":[{"id":4,"date":"2016-06-01","payment_method":"credit_card","amount_cents":0}],"notes":null,"state":"invoiced","tag_list":[],"secure_id":"885fc61e0b83f9d507fcbb6fa9495ba0dcc31d96","permalink":"http://development.lvh.me:3000/receipt/885fc61e0b83f9d507fcbb6fa9495ba0dcc31d96","pdf":"http://development.lvh.me:3000/receipt/885fc61e0b83f9d507fcbb6fa9495ba0dcc31d96.pdf","url":"http://development.lvh.me:3000/api/receipts/985.json","processor":null,"processor_id":null},{"id":983,"number":"0000001","issue_date":"2016-05-30","created_at":1464785067,"contact":{"id":52,"full_name":"A.
219
+ Lucas Mayoral"},"street_line_1":null,"street_line_2":null,"city":null,"region":null,"postal_code":null,"po_number":null,"currency":"EUR","exchange_rate":"1.0","items":[{"id":989,"description":"Something","quantity":"1.0","unit_price_cents":"0.0","discount_rate":"0.0","tax_1_name":null,"tax_1_rate":null,"tax_2_name":null,"tax_2_rate":null,"reference":null,"subtotal_cents":"0.0","discount_cents":"0.0","gross_amount_cents":"0.0"}],"subtotal_cents":"0.0","discount_cents":"0.0","taxes":[],"payments":[{"id":2,"date":"2016-05-30","payment_method":"credit_card","amount_cents":0}],"notes":null,"state":"invoiced","tag_list":[],"secure_id":"9d00a9c881965f04758c4d5627c38cc8d4182713","permalink":"http://development.lvh.me:3000/receipt/9d00a9c881965f04758c4d5627c38cc8d4182713","pdf":"http://development.lvh.me:3000/receipt/9d00a9c881965f04758c4d5627c38cc8d4182713.pdf","url":"http://development.lvh.me:3000/api/receipts/983.json","processor":null,"processor_id":null}]'
220
+ http_version: '1.1'
221
+ recorded_at: Thu, 23 Jun 2016 11:28:07 GMT
222
+ recorded_with: VCR 2.9.2