solidus_bolt 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +41 -0
  3. data/.gem_release.yml +5 -0
  4. data/.github/stale.yml +17 -0
  5. data/.github_changelog_generator +2 -0
  6. data/.gitignore +20 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +11 -0
  9. data/CHANGELOG.md +1 -0
  10. data/Gemfile +33 -0
  11. data/LICENSE +26 -0
  12. data/README.md +175 -0
  13. data/Rakefile +6 -0
  14. data/app/assets/images/bolt_logo_standard.png +0 -0
  15. data/app/assets/javascripts/authorize_account.js +74 -0
  16. data/app/assets/javascripts/solidus_bolt.js +91 -0
  17. data/app/assets/javascripts/spree/backend/solidus_bolt.js +4 -0
  18. data/app/assets/javascripts/spree/frontend/solidus_bolt.js +18 -0
  19. data/app/assets/stylesheets/spree/backend/solidus_bolt.css +4 -0
  20. data/app/assets/stylesheets/spree/frontend/solidus_bolt.css +4 -0
  21. data/app/controllers/solidus_bolt/accounts_controller.rb +17 -0
  22. data/app/controllers/solidus_bolt/base_controller.rb +21 -0
  23. data/app/controllers/solidus_bolt/webhooks_controller.rb +21 -0
  24. data/app/controllers/spree/admin/bolt_webhooks_controller.rb +34 -0
  25. data/app/controllers/spree/admin/bolts_controller.rb +43 -0
  26. data/app/decorators/controllers/solidus_bolt/spree_checkout_controller/add_addresses_to_bolt.rb +23 -0
  27. data/app/decorators/controllers/solidus_bolt/spree_checkout_controller/refresh_bolt_addresses.rb +17 -0
  28. data/app/decorators/controllers/solidus_bolt/spree_checkout_controller/refresh_bolt_payment_source.rb +17 -0
  29. data/app/decorators/models/solidus_bolt/address_decorator.rb +22 -0
  30. data/app/decorators/models/solidus_bolt/log_entry_decorator.rb +11 -0
  31. data/app/decorators/models/solidus_bolt/order_decorator.rb +44 -0
  32. data/app/decorators/models/solidus_bolt/payment_decorator.rb +11 -0
  33. data/app/decorators/omniauth/strategies/bolt_decorator.rb +16 -0
  34. data/app/jobs/solidus_bolt/add_address_job.rb +11 -0
  35. data/app/models/solidus_bolt/bolt_configuration.rb +74 -0
  36. data/app/models/solidus_bolt/gateway.rb +133 -0
  37. data/app/models/solidus_bolt/payment_method.rb +35 -0
  38. data/app/models/solidus_bolt/payment_source.rb +13 -0
  39. data/app/models/solidus_bolt.rb +7 -0
  40. data/app/overrides/spree/shared/_head/add_bolt_embed_script.html.erb.deface +6 -0
  41. data/app/services/solidus_bolt/accounts/add_address_service.rb +55 -0
  42. data/app/services/solidus_bolt/accounts/add_payment_method_service.rb +45 -0
  43. data/app/services/solidus_bolt/accounts/detail_service.rb +38 -0
  44. data/app/services/solidus_bolt/accounts/detect_account_service.rb +34 -0
  45. data/app/services/solidus_bolt/base_service.rb +55 -0
  46. data/app/services/solidus_bolt/oauth/token_service.rb +43 -0
  47. data/app/services/solidus_bolt/payments/capture_sync_service.rb +24 -0
  48. data/app/services/solidus_bolt/payments/credit_sync_service.rb +44 -0
  49. data/app/services/solidus_bolt/payments/void_sync_service.rb +18 -0
  50. data/app/services/solidus_bolt/server_error.rb +6 -0
  51. data/app/services/solidus_bolt/transactions/authorize_service.rb +72 -0
  52. data/app/services/solidus_bolt/transactions/base_service.rb +28 -0
  53. data/app/services/solidus_bolt/transactions/capture_service.rb +46 -0
  54. data/app/services/solidus_bolt/transactions/detail_service.rb +38 -0
  55. data/app/services/solidus_bolt/transactions/refund_service.rb +46 -0
  56. data/app/services/solidus_bolt/transactions/void_service.rb +44 -0
  57. data/app/services/solidus_bolt/users/refresh_access_token_service.rb +44 -0
  58. data/app/services/solidus_bolt/users/sync_addresses_service.rb +49 -0
  59. data/app/services/solidus_bolt/users/sync_payment_sources_service.rb +50 -0
  60. data/app/services/solidus_bolt/webhooks/create_service.rb +52 -0
  61. data/app/views/spree/admin/bolt_webhooks/new.html.erb +22 -0
  62. data/app/views/spree/admin/bolts/_configuration.html.erb +32 -0
  63. data/app/views/spree/admin/bolts/_form.html.erb +29 -0
  64. data/app/views/spree/admin/bolts/edit.html.erb +6 -0
  65. data/app/views/spree/admin/bolts/show.html.erb +21 -0
  66. data/app/views/spree/admin/payments/source_forms/_bolt.html.erb +1 -0
  67. data/app/views/spree/admin/payments/source_views/_bolt.html.erb +2 -0
  68. data/app/views/spree/api/payments/source_views/_bolt.json.jbuilder +4 -0
  69. data/app/views/spree/checkout/existing_payment/_bolt.html.erb +7 -0
  70. data/app/views/spree/checkout/payment/_bolt.html.erb +1 -0
  71. data/app/views/spree/shared/payment/_bolt.html.erb +19 -0
  72. data/app/webhooks/solidus_bolt/handlers/base_handler.rb +27 -0
  73. data/app/webhooks/solidus_bolt/handlers/capture_handler.rb +13 -0
  74. data/app/webhooks/solidus_bolt/handlers/credit_handler.rb +18 -0
  75. data/app/webhooks/solidus_bolt/handlers/void_handler.rb +11 -0
  76. data/app/webhooks/solidus_bolt/sorter.rb +33 -0
  77. data/bin/console +17 -0
  78. data/bin/rails +7 -0
  79. data/bin/rails-engine +13 -0
  80. data/bin/rails-sandbox +16 -0
  81. data/bin/rake +7 -0
  82. data/bin/sandbox +86 -0
  83. data/bin/setup +8 -0
  84. data/config/initializers/menu_items.rb +14 -0
  85. data/config/locales/en.yml +17 -0
  86. data/config/routes.rb +11 -0
  87. data/db/migrate/20220330094232_create_solidus_bolt_payment_sources.rb +16 -0
  88. data/db/migrate/20220413063328_create_solidus_bolt_bolt_configurations.rb +14 -0
  89. data/db/migrate/20220502005041_swap_url_for_env_boolean_in_bolt_configuration.rb +6 -0
  90. data/db/migrate/20220509102309_rework_solidus_bolt_payment_sources.rb +19 -0
  91. data/db/migrate/20220510075227_add_create_bolt_account_to_solidus_bolt_payment_source.rb +5 -0
  92. data/db/migrate/20220519233043_add_user_to_solidus_bolt_payment_source.rb +5 -0
  93. data/db/migrate/20220526005619_remove_user_id_from_solidus_bolt_payment_source.rb +5 -0
  94. data/db/migrate/20220530102107_rename_bolt_configuration_merchant_id_to_division_public_id.rb +5 -0
  95. data/db/migrate/20220531075527_update_bolt_configuration_environment_column_restrictions.rb +6 -0
  96. data/db/seeds.rb +30 -0
  97. data/lib/generators/solidus_bolt/install/install_generator.rb +78 -0
  98. data/lib/generators/solidus_bolt/install/templates/initializer.rb +8 -0
  99. data/lib/solidus_bolt/configuration.rb +19 -0
  100. data/lib/solidus_bolt/engine.rb +62 -0
  101. data/lib/solidus_bolt/testing_support/factories.rb +32 -0
  102. data/lib/solidus_bolt/version.rb +5 -0
  103. data/lib/solidus_bolt.rb +9 -0
  104. data/lib/tasks/db/seed/solidus_bolt.rake +14 -0
  105. data/lib/views/frontend/spree/shared/_login_bar_items.html.erb +18 -0
  106. data/solidus_bolt.gemspec +46 -0
  107. data/spec/decorators/models/solidus_bolt/address_decorator_spec.rb +24 -0
  108. data/spec/decorators/models/solidus_bolt/order_decorator_spec.rb +36 -0
  109. data/spec/decorators/models/solidus_bolt/payment_decorator_spec.rb +30 -0
  110. data/spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_AddAddressService/_call/with_correct_access_token/receives_a_successful_response.yml +137 -0
  111. data/spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_AddAddressService/_call/with_existing_address/skips_the_add_address_call.yml +82 -0
  112. data/spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_AddAddressService/_call/with_wrong_access_token/gives_an_error.yml +55 -0
  113. data/spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_AddPaymentMethodService/_call/with_correct_access_token/receives_a_successful_response.yml +186 -0
  114. data/spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_AddPaymentMethodService/_call/with_wrong_access_token/gives_an_error.yml +179 -0
  115. data/spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetailService/_call/with_correct_access_token/receives_a_successful_response.yml +55 -0
  116. data/spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetailService/_call/with_wrong_access_token/gives_an_error.yml +55 -0
  117. data/spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetectAccountService/_call/receives_the_correct_response.yml +50 -0
  118. data/spec/fixtures/vcr_cassettes/SolidusBolt_Accounts_DetectAccountService/_call/returns_status_200.yml +50 -0
  119. data/spec/fixtures/vcr_cassettes/SolidusBolt_Oauth_TokenService/_call/makes_the_API_call.yml +59 -0
  120. data/spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_AuthorizeService/when_repeat_payment/_call/makes_the_API_call.yml +305 -0
  121. data/spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_AuthorizeService/with_auto_capture/_call/makes_the_API_call.yml +307 -0
  122. data/spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_AuthorizeService/without_auto_capture/_call/makes_the_API_call.yml +252 -0
  123. data/spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_CaptureService/_call/makes_the_API_call.yml +242 -0
  124. data/spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_DetailService/_call/makes_the_API_call.yml +244 -0
  125. data/spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_RefundService/_call/makes_the_API_call.yml +296 -0
  126. data/spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_VoidService/_call/makes_the_API_call.yml +242 -0
  127. data/spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_VoidService/_call/when_transaction_id_is_missing/makes_the_API_call.yml +242 -0
  128. data/spec/fixtures/vcr_cassettes/SolidusBolt_Transactions_VoidService/_call/when_transaction_reference_is_missing/makes_the_API_call.yml +242 -0
  129. data/spec/fixtures/vcr_cassettes/SolidusBolt_Users_SyncAddressesService/_call/adds_the_bill_address_to_the_user.yml +165 -0
  130. data/spec/fixtures/vcr_cassettes/SolidusBolt_Users_SyncAddressesService/_call/adds_the_ship_address_to_the_user.yml +165 -0
  131. data/spec/fixtures/vcr_cassettes/SolidusBolt_Users_SyncPaymentSourcesService/_call/creates_a_new_payment_source_with_card_ID.yml +55 -0
  132. data/spec/fixtures/vcr_cassettes/SolidusBolt_Webhooks_CreateService/_call/with_all_event/returns_a_webhook_id.yml +54 -0
  133. data/spec/fixtures/vcr_cassettes/SolidusBolt_Webhooks_CreateService/_call/with_an_event/returns_a_webhook_id.yml +54 -0
  134. data/spec/fixtures/vcr_cassettes/SolidusBolt_Webhooks_CreateService/_call/with_empty_event/raises_a_server_error.yml +57 -0
  135. data/spec/jobs/solidus_bolt/add_address_job_spec.rb +18 -0
  136. data/spec/models/solidus_bolt/bolt_configuration_spec.rb +173 -0
  137. data/spec/models/solidus_bolt/gateway_spec.rb +130 -0
  138. data/spec/models/solidus_bolt/payment_method_spec.rb +21 -0
  139. data/spec/models/solidus_bolt/payment_source_spec.rb +22 -0
  140. data/spec/requests/solidus_bolt/accounts_controller_spec.rb +41 -0
  141. data/spec/requests/solidus_bolt/webhooks_controller_spec.rb +122 -0
  142. data/spec/requests/spree/admin/bolt_spec.rb +71 -0
  143. data/spec/requests/spree/admin/bolt_webhook_spec.rb +35 -0
  144. data/spec/requests/spree/checkout_controller_spec.rb +117 -0
  145. data/spec/services/solidus_bolt/accounts/add_address_service_spec.rb +45 -0
  146. data/spec/services/solidus_bolt/accounts/add_payment_method_service_spec.rb +47 -0
  147. data/spec/services/solidus_bolt/accounts/detail_service_spec.rb +32 -0
  148. data/spec/services/solidus_bolt/accounts/detect_account_service_spec.rb +15 -0
  149. data/spec/services/solidus_bolt/base_service_spec.rb +49 -0
  150. data/spec/services/solidus_bolt/oauth/token_service_spec.rb +15 -0
  151. data/spec/services/solidus_bolt/payments/capture_sync_service_spec.rb +27 -0
  152. data/spec/services/solidus_bolt/payments/credit_sync_service_spec.rb +38 -0
  153. data/spec/services/solidus_bolt/payments/void_sync_service_spec.rb +25 -0
  154. data/spec/services/solidus_bolt/transactions/authorize_service_spec.rb +117 -0
  155. data/spec/services/solidus_bolt/transactions/base_service_spec.rb +38 -0
  156. data/spec/services/solidus_bolt/transactions/capture_service_spec.rb +37 -0
  157. data/spec/services/solidus_bolt/transactions/detail_service_spec.rb +31 -0
  158. data/spec/services/solidus_bolt/transactions/refund_service_spec.rb +42 -0
  159. data/spec/services/solidus_bolt/transactions/void_service_spec.rb +70 -0
  160. data/spec/services/solidus_bolt/users/refresh_access_token_service_spec.rb +45 -0
  161. data/spec/services/solidus_bolt/users/sync_addresses_service_spec.rb +74 -0
  162. data/spec/services/solidus_bolt/users/sync_payment_sources_service_spec.rb +25 -0
  163. data/spec/services/solidus_bolt/webhooks/create_service_spec.rb +33 -0
  164. data/spec/spec_helper.rb +37 -0
  165. data/spec/support/bolt_configuration.rb +26 -0
  166. data/spec/support/bolt_helper.rb +66 -0
  167. data/spec/support/vcr.rb +29 -0
  168. data/spec/webhooks/solidus_bolt/handlers/base_handler_spec.rb +13 -0
  169. data/spec/webhooks/solidus_bolt/handlers/capture_handler_spec.rb +24 -0
  170. data/spec/webhooks/solidus_bolt/handlers/credit_handler_spec.rb +32 -0
  171. data/spec/webhooks/solidus_bolt/handlers/void_handler_spec.rb +19 -0
  172. data/spec/webhooks/solidus_bolt/sorter_spec.rb +39 -0
  173. metadata +492 -0
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api-sandbox.bolt.com/v1/account
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<BEARER AUTHORIZATION>"
12
+ X-Api-Key:
13
+ - "<API_KEY>"
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
22
+ code: 403
23
+ message: Forbidden
24
+ headers:
25
+ Date:
26
+ - Tue, 31 May 2022 01:20:12 GMT
27
+ Content-Type:
28
+ - application/json; charset=UTF-8
29
+ Content-Length:
30
+ - '89'
31
+ Connection:
32
+ - keep-alive
33
+ Public-Key-Pins-Report-Only:
34
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
35
+ Set-Cookie:
36
+ - trk=1a93c681-6c5d-4637-b241-f89d4aee20d6; Path=/; Max-Age=31536000; HttpOnly;
37
+ Secure; SameSite=None
38
+ Strict-Transport-Security:
39
+ - max-age=31536000; includeSubDomains; preload
40
+ X-Bolt-Api-Version:
41
+ - '2022-01-01'
42
+ X-Bolt-Trace-Id:
43
+ - Root=1-62956d4c-70b90ea629e9228431b92000
44
+ X-Device-Id:
45
+ - 9e1083e0992b47d0076132182970216f7f1cca11ab0c8cbbd21b6273287199c7
46
+ X-Envoy-Upstream-Service-Time:
47
+ - '32'
48
+ Server:
49
+ - envoy
50
+ body:
51
+ encoding: UTF-8
52
+ string: '{"result":{"success":false},"errors":[{"code":18,"message":"This action
53
+ is forbidden."}]}'
54
+ recorded_at: Tue, 31 May 2022 01:20:12 GMT
55
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,186 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandbox.bolttk.com/public_key
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/text; charset=utf-8
23
+ Content-Length:
24
+ - '44'
25
+ Connection:
26
+ - keep-alive
27
+ Date:
28
+ - Fri, 27 May 2022 01:22:52 GMT
29
+ X-Amzn-Requestid:
30
+ - 6e67c3fa-2faa-4d27-98cf-eae66247a79f
31
+ Access-Control-Allow-Origin:
32
+ - "*"
33
+ Strict-Transport-Security:
34
+ - max-age=31536000; includeSubDomains; preload
35
+ X-Amzn-Remapped-Content-Length:
36
+ - '44'
37
+ X-Amzn-Remapped-Connection:
38
+ - close
39
+ X-Amz-Apigw-Id:
40
+ - Swss-E7PSK4FRMg=
41
+ Cache-Control:
42
+ - public, max-age=604800
43
+ X-Powered-By:
44
+ - Express
45
+ X-Amzn-Trace-Id:
46
+ - Root=1-629027ec-1577ed8b1c8565a00c51f566
47
+ X-Amzn-Remapped-Date:
48
+ - Fri, 27 May 2022 01:22:52 GMT
49
+ Via:
50
+ - 1.1 8eabaca8b591c36a72bf060174c30de0.cloudfront.net (CloudFront), 1.1 d3e9860c1306f02cb57e75ed57120ee4.cloudfront.net
51
+ (CloudFront)
52
+ X-Amz-Cf-Pop:
53
+ - LAX3-C3
54
+ - SFO53-C1
55
+ Etag:
56
+ - W/"2c-qVZerSDDiabAHoqCi/o+02DcdQI"
57
+ X-Cache:
58
+ - Hit from cloudfront
59
+ X-Amz-Cf-Id:
60
+ - moxxeKiCgPkLM9AgZFLyIfBTdcWZj_uUdZHyigZl4xUlQSrEcaNfBw==
61
+ Age:
62
+ - '10248'
63
+ body:
64
+ encoding: UTF-8
65
+ string: SnTw15miTFwqwPnqn95Xurm049JaNGWdKX38id7/Lik=
66
+ recorded_at: Fri, 27 May 2022 04:13:42 GMT
67
+ - request:
68
+ method: post
69
+ uri: https://sandbox.bolttk.com/token
70
+ body:
71
+ encoding: UTF-8
72
+ string: '{"payload":"ozqCU+YXxDkFIQp2zw0pulQkXfU/dpf59QXvSHa2pUo1yUjUwttqL650MNgQ\nsP5lG91prkw=\n","nonce":"NjQyOTU4ODQ0MDMxMjg3OTIxMDkwODkx\n","public_key":"jOscXiiZCsn+nfXFetBF+3On0nAWgedP87ZbJUKizDw=\n"}'
73
+ headers:
74
+ Content-Type:
75
+ - application/json
76
+ Accept-Encoding:
77
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
78
+ Accept:
79
+ - "*/*"
80
+ User-Agent:
81
+ - Ruby
82
+ response:
83
+ status:
84
+ code: 200
85
+ message: OK
86
+ headers:
87
+ Content-Type:
88
+ - application/json; charset=utf-8
89
+ Content-Length:
90
+ - '273'
91
+ Connection:
92
+ - keep-alive
93
+ Date:
94
+ - Fri, 27 May 2022 04:13:41 GMT
95
+ X-Amzn-Requestid:
96
+ - b89d579a-63f0-43c6-804e-1a18c1057b19
97
+ Access-Control-Allow-Origin:
98
+ - "*"
99
+ Strict-Transport-Security:
100
+ - max-age=31536000; includeSubDomains; preload
101
+ X-Amzn-Remapped-Content-Length:
102
+ - '273'
103
+ X-Amzn-Remapped-Connection:
104
+ - close
105
+ X-Amz-Apigw-Id:
106
+ - SxFuWEcUSK4FnyQ=
107
+ Etag:
108
+ - W/"111-PRPLyOwXPsHO6NigYBg7NsQfkFI"
109
+ X-Powered-By:
110
+ - Express
111
+ X-Amzn-Trace-Id:
112
+ - Root=1-62904ff5-72966a4d2c07518f628289b1
113
+ X-Amzn-Remapped-Date:
114
+ - Fri, 27 May 2022 04:13:41 GMT
115
+ Via:
116
+ - 1.1 f1f23e31a920ab1b12fcfa84d5ce673e.cloudfront.net (CloudFront), 1.1 8e223aee1ca3f4c950e8d2a26c8a546a.cloudfront.net
117
+ (CloudFront)
118
+ X-Amz-Cf-Pop:
119
+ - LAX3-C3
120
+ - LAX3-C3
121
+ X-Cache:
122
+ - Miss from cloudfront
123
+ X-Amz-Cf-Id:
124
+ - zUzsEfy9vo-kSfAaOsiZj57CowGwRHQkCa0gfQTMROPbQw4CtmuHPw==
125
+ body:
126
+ encoding: UTF-8
127
+ string: '{"payload":"VWz3TIN+POVXuivVuniYAYP82RH53x6quytq2B4b8br5n/mzsfz8js6XK0UnU7X+MUNgA4Q8fXPDk/zbevE8U1oD9X/CBcbhr1kRwDLeS4AaXePLj8neNw08Hvk9X2B7aEA3wb/0wq7QMLJ5IdPy9ov6a2L+Y/illqYnFL+7VhUT5v4LasJRsi5LCKSSXgSyGG/vzwuLnd3LZp8OxdZQm6Sn","nonce":"8x+N/b70wLMS51Dz20aUk5rrwx1ypFLr"}'
128
+ recorded_at: Fri, 27 May 2022 04:13:43 GMT
129
+ - request:
130
+ method: post
131
+ uri: https://api-sandbox.bolt.com/v1/account/payment_methods
132
+ body:
133
+ encoding: UTF-8
134
+ string: '{"token":"18df980c6cb5f0ef82fb4d94cb387850c6bd95bf0007ecd7d5b30eb9d3cf7b24","expiry":1653625721294,"last4":"1004","bin":"411111","network":"visa","number":"4111111111111004","expiration":"2023-05","token_type":"bolt","postal_code":"10001","billing_address":{"street_address1":"10
135
+ Lovely Street","street_address2":"Northwest","locality":"Herndon","region":"AL","postal_code":"10001","country_code":"US","first_name":"John","last_name":"Von
136
+ Doe","phone":"555-555-0199","email":"example@email.com"}}'
137
+ headers:
138
+ Authorization:
139
+ - "<BEARER AUTHORIZATION>"
140
+ Content-Type:
141
+ - application/json
142
+ X-Api-Key:
143
+ - "<API_KEY>"
144
+ Accept-Encoding:
145
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
146
+ Accept:
147
+ - "*/*"
148
+ User-Agent:
149
+ - Ruby
150
+ response:
151
+ status:
152
+ code: 200
153
+ message: OK
154
+ headers:
155
+ Date:
156
+ - Fri, 27 May 2022 04:13:45 GMT
157
+ Content-Type:
158
+ - application/json; charset=UTF-8
159
+ Content-Length:
160
+ - '448'
161
+ Connection:
162
+ - keep-alive
163
+ Public-Key-Pins-Report-Only:
164
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
165
+ Set-Cookie:
166
+ - trk=4c60e1bc-6e97-46da-84fd-630629d95e06; Path=/; Max-Age=31536000; HttpOnly;
167
+ Secure; SameSite=None
168
+ Strict-Transport-Security:
169
+ - max-age=31536000; includeSubDomains; preload
170
+ X-Bolt-Api-Version:
171
+ - '2022-01-01'
172
+ X-Bolt-Trace-Id:
173
+ - Root=1-62904ff6-4869236607b99e0d321cfe06
174
+ X-Device-Id:
175
+ - fa967cb5b28a9e0141522609a88d1441becbb924282f68649f290a25af1e968f
176
+ X-Envoy-Upstream-Service-Time:
177
+ - '2842'
178
+ Server:
179
+ - envoy
180
+ body:
181
+ encoding: UTF-8
182
+ string: '{"id":"CAeHu5S7Yjyek","type":"card","last4":"1004","billing_address":{"id":"AAecNe4HcX5WG","street_address1":"10
183
+ Lovely Street","street_address2":"Northwest","locality":"Herndon","region":"AL","region_code":"AL","postal_code":"10001","country_code":"US","name":"John
184
+ Von Doe","first_name":"John","last_name":"Von Doe","phone_number":"555-555-0199","email_address":"example@email.com"},"network":"visa","default":false,"exp_month":5,"exp_year":2023}'
185
+ recorded_at: Fri, 27 May 2022 04:13:47 GMT
186
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,179 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandbox.bolttk.com/public_key
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/text; charset=utf-8
23
+ Content-Length:
24
+ - '44'
25
+ Connection:
26
+ - keep-alive
27
+ Date:
28
+ - Fri, 27 May 2022 01:21:14 GMT
29
+ X-Amzn-Requestid:
30
+ - 7b70e1fd-961f-40fd-9446-3a89df0f7e8b
31
+ Access-Control-Allow-Origin:
32
+ - "*"
33
+ Strict-Transport-Security:
34
+ - max-age=31536000; includeSubDomains; preload
35
+ X-Amzn-Remapped-Content-Length:
36
+ - '44'
37
+ X-Amzn-Remapped-Connection:
38
+ - close
39
+ X-Amz-Apigw-Id:
40
+ - SwsdpEMDyK4FijQ=
41
+ Cache-Control:
42
+ - public, max-age=604800
43
+ X-Powered-By:
44
+ - Express
45
+ X-Amzn-Trace-Id:
46
+ - Root=1-6290278a-2890879c7ddc675525d42b77
47
+ X-Amzn-Remapped-Date:
48
+ - Fri, 27 May 2022 01:21:14 GMT
49
+ Via:
50
+ - 1.1 485f314a42a9f55627218967d20fdc00.cloudfront.net (CloudFront), 1.1 2e99c50ac852ccefe05bd3b68d4909c8.cloudfront.net
51
+ (CloudFront)
52
+ X-Amz-Cf-Pop:
53
+ - HIO50-C2
54
+ - LAX53-P2
55
+ Etag:
56
+ - W/"2c-qVZerSDDiabAHoqCi/o+02DcdQI"
57
+ X-Cache:
58
+ - Miss from cloudfront
59
+ X-Amz-Cf-Id:
60
+ - b-O3gGRUeqyMad9aRHkxBnz2BFwalHLpsTEsvRGsRUfwsDCRbY6wgQ==
61
+ body:
62
+ encoding: UTF-8
63
+ string: SnTw15miTFwqwPnqn95Xurm049JaNGWdKX38id7/Lik=
64
+ recorded_at: Fri, 27 May 2022 01:21:16 GMT
65
+ - request:
66
+ method: post
67
+ uri: https://sandbox.bolttk.com/token
68
+ body:
69
+ encoding: UTF-8
70
+ string: '{"payload":"l/Il03Vep+HUkn88taHFkSMnEdj4WPGWmd3uvPNV1QIxH7835TESDOKVIerd\nlrVThrdKLzs=\n","nonce":"OTk5NTQ5NDc1MjM5ODIxMTQxMDYxNjA1\n","public_key":"jOscXiiZCsn+nfXFetBF+3On0nAWgedP87ZbJUKizDw=\n"}'
71
+ headers:
72
+ Content-Type:
73
+ - application/json
74
+ Accept-Encoding:
75
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
76
+ Accept:
77
+ - "*/*"
78
+ User-Agent:
79
+ - Ruby
80
+ response:
81
+ status:
82
+ code: 200
83
+ message: OK
84
+ headers:
85
+ Content-Type:
86
+ - application/json; charset=utf-8
87
+ Content-Length:
88
+ - '273'
89
+ Connection:
90
+ - keep-alive
91
+ Date:
92
+ - Fri, 27 May 2022 01:21:15 GMT
93
+ X-Amzn-Requestid:
94
+ - f28e7979-4a07-43ec-8b15-812a6cf941da
95
+ Access-Control-Allow-Origin:
96
+ - "*"
97
+ Strict-Transport-Security:
98
+ - max-age=31536000; includeSubDomains; preload
99
+ X-Amzn-Remapped-Content-Length:
100
+ - '273'
101
+ X-Amzn-Remapped-Connection:
102
+ - close
103
+ X-Amz-Apigw-Id:
104
+ - SwsdwG2JSK4FfnA=
105
+ Etag:
106
+ - W/"111-fZgqj32IEqBDcQsfCHq8rrciGSM"
107
+ X-Powered-By:
108
+ - Express
109
+ X-Amzn-Trace-Id:
110
+ - Root=1-6290278b-76ed3dff7037111608060f88
111
+ X-Amzn-Remapped-Date:
112
+ - Fri, 27 May 2022 01:21:15 GMT
113
+ Via:
114
+ - 1.1 0b40a98675b17834ad886e4848be9fac.cloudfront.net (CloudFront), 1.1 10084ccafdc318e0abba7148b0b1b088.cloudfront.net
115
+ (CloudFront)
116
+ X-Amz-Cf-Pop:
117
+ - LAX50-C2
118
+ - LAX53-P2
119
+ X-Cache:
120
+ - Miss from cloudfront
121
+ X-Amz-Cf-Id:
122
+ - GmtBlEUlLcW3PoRZpojCVF6Jbp0o9P3nLhF26lrjqcbA-AlI4rb9iA==
123
+ body:
124
+ encoding: UTF-8
125
+ string: '{"payload":"kUxaezR5BA0rfSQDZJvKeef1LoKfrqcDdTffnEL7yNBhjKNpwVbXEh6itUzwMjM0Yho4D6l7i+gtZD79NpVZj+cZBp/yLpn7L0K7UYNDx8CY0H+llNP2RaMXagtJlflNJmMhCZDeEn1rvjT0lp7h9DzwkJj8JWFwdzWtQpi4/SQspM6oeTFQt0wCQwagC59blZ1ZoTa1GuvfZ5B23YYak5eG","nonce":"YQZgpOK9JIE+DWPEpVJ6qmfsAd537xWS"}'
126
+ recorded_at: Fri, 27 May 2022 01:21:18 GMT
127
+ - request:
128
+ method: post
129
+ uri: https://api-sandbox.bolt.com/v1/account/payment_methods
130
+ body:
131
+ encoding: UTF-8
132
+ string: token=dd91981c00bf1ef9b35635791b1f7ec2400370e4e6932642eab8b0c0e9c69ffe&expiry=1653615375209&last4=1004&bin=411111&network=visa&expiration=2023-05&token_type=bolt
133
+ headers:
134
+ Authorization:
135
+ - "<BEARER AUTHORIZATION>"
136
+ X-Api-Key:
137
+ - "<API_KEY>"
138
+ Accept-Encoding:
139
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
140
+ Accept:
141
+ - "*/*"
142
+ User-Agent:
143
+ - Ruby
144
+ response:
145
+ status:
146
+ code: 403
147
+ message: Forbidden
148
+ headers:
149
+ Date:
150
+ - Fri, 27 May 2022 01:21:16 GMT
151
+ Content-Type:
152
+ - application/json; charset=UTF-8
153
+ Content-Length:
154
+ - '89'
155
+ Connection:
156
+ - keep-alive
157
+ Public-Key-Pins-Report-Only:
158
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
159
+ Set-Cookie:
160
+ - trk=ec159e75-4352-4580-b358-e5d4c3b81eb3; Path=/; Max-Age=31536000; HttpOnly;
161
+ Secure; SameSite=None
162
+ Strict-Transport-Security:
163
+ - max-age=31536000; includeSubDomains; preload
164
+ X-Bolt-Api-Version:
165
+ - '2022-01-01'
166
+ X-Bolt-Trace-Id:
167
+ - Root=1-6290278c-4592b1167557adc17312092f
168
+ X-Device-Id:
169
+ - 7e0addac93a4a4d979631fa9db8eb92307de52e4518b8ea68ef395ec3d787a51
170
+ X-Envoy-Upstream-Service-Time:
171
+ - '30'
172
+ Server:
173
+ - envoy
174
+ body:
175
+ encoding: UTF-8
176
+ string: '{"result":{"success":false},"errors":[{"code":18,"message":"This action
177
+ is forbidden."}]}'
178
+ recorded_at: Fri, 27 May 2022 01:21:18 GMT
179
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api-sandbox.bolt.com/v1/account
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - "<BEARER AUTHORIZATION>"
12
+ X-Api-Key:
13
+ - "<API_KEY>"
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Date:
26
+ - Fri, 20 May 2022 00:52:42 GMT
27
+ Content-Type:
28
+ - application/json; charset=UTF-8
29
+ Content-Length:
30
+ - '301'
31
+ Connection:
32
+ - keep-alive
33
+ Public-Key-Pins-Report-Only:
34
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
35
+ Set-Cookie:
36
+ - trk=9f69895b-8b34-4f62-a508-f09650d5c4d2; Path=/; Max-Age=31536000; HttpOnly;
37
+ Secure; SameSite=None
38
+ Strict-Transport-Security:
39
+ - max-age=31536000; includeSubDomains; preload
40
+ X-Bolt-Api-Version:
41
+ - '2022-01-01'
42
+ X-Bolt-Trace-Id:
43
+ - Root=1-6286e65a-60b62fbb00698d3507bec285
44
+ X-Device-Id:
45
+ - b14d37786ac06e9df121d6418689d1ee7f8472e4116cd32892f2e29ad103bc71
46
+ X-Envoy-Upstream-Service-Time:
47
+ - '73'
48
+ Server:
49
+ - envoy
50
+ body:
51
+ encoding: UTF-8
52
+ string: '{"profile":{"first_name":"asdasd","last_name":"fsfasdf","email":"paulodalberti@nebulab.com","phone":"","name":"asdasd
53
+ fsfasdf"},"addresses":[],"payment_methods":[{"id":"CAgP9uNSEZBNL","type":"card","last4":"1111","network":"visa","default":true,"exp_month":4,"exp_year":2098}],"has_bolt_account":true}'
54
+ recorded_at: Fri, 20 May 2022 00:52:44 GMT
55
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api-sandbox.bolt.com/v1/account
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Authorization:
11
+ - Bearer Bolt Access Token
12
+ X-Api-Key:
13
+ - "<API_KEY>"
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
22
+ code: 403
23
+ message: Forbidden
24
+ headers:
25
+ Date:
26
+ - Mon, 16 May 2022 11:17:38 GMT
27
+ Content-Type:
28
+ - application/json; charset=UTF-8
29
+ Content-Length:
30
+ - '89'
31
+ Connection:
32
+ - keep-alive
33
+ Public-Key-Pins-Report-Only:
34
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
35
+ Set-Cookie:
36
+ - trk=68477a42-2b3b-4ce2-b041-fbf01adc05ec; Path=/; Max-Age=31536000; HttpOnly;
37
+ Secure; SameSite=None
38
+ Strict-Transport-Security:
39
+ - max-age=31536000; includeSubDomains; preload
40
+ X-Bolt-Api-Version:
41
+ - '2022-01-01'
42
+ X-Bolt-Trace-Id:
43
+ - Root=1-628232d2-74004fc24c6d262b73fde049
44
+ X-Device-Id:
45
+ - 50d06b486ee79807b82cc001f80fd4fe6fc68ff04f137679453a319e7658fd99
46
+ X-Envoy-Upstream-Service-Time:
47
+ - '12'
48
+ Server:
49
+ - envoy
50
+ body:
51
+ encoding: UTF-8
52
+ string: '{"result":{"success":false},"errors":[{"code":18,"message":"This action
53
+ is forbidden."}]}'
54
+ recorded_at: Mon, 16 May 2022 11:17:38 GMT
55
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api-sandbox.bolt.com/v1/account/exists?email=bolt@bolt.com
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Fri, 29 Apr 2022 05:17:34 GMT
23
+ Content-Type:
24
+ - application/json; charset=UTF-8
25
+ Content-Length:
26
+ - '26'
27
+ Connection:
28
+ - keep-alive
29
+ Public-Key-Pins-Report-Only:
30
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
31
+ Set-Cookie:
32
+ - trk=12bda1e6-01c1-4809-994c-ad0dab590e7a; Path=/; Max-Age=31536000; HttpOnly;
33
+ Secure; SameSite=None
34
+ Strict-Transport-Security:
35
+ - max-age=31536000; includeSubDomains; preload
36
+ X-Bolt-Api-Version:
37
+ - '2022-01-01'
38
+ X-Bolt-Trace-Id:
39
+ - Root=1-626b74ee-0a9b3da14b0afb7040650e16
40
+ X-Device-Id:
41
+ - 80d134abdf1b140ea6334240affda7bccabcfcd647c28a4d8e38c76cf4ca795b
42
+ X-Envoy-Upstream-Service-Time:
43
+ - '14'
44
+ Server:
45
+ - envoy
46
+ body:
47
+ encoding: UTF-8
48
+ string: '{"has_bolt_account":false}'
49
+ recorded_at: Fri, 29 Apr 2022 05:17:35 GMT
50
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api-sandbox.bolt.com/v1/account/exists?email=bolt@bolt.com
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Fri, 29 Apr 2022 05:17:30 GMT
23
+ Content-Type:
24
+ - application/json; charset=UTF-8
25
+ Content-Length:
26
+ - '26'
27
+ Connection:
28
+ - keep-alive
29
+ Public-Key-Pins-Report-Only:
30
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
31
+ Set-Cookie:
32
+ - trk=5fb06b0d-0295-4c25-989b-cc8830d944ba; Path=/; Max-Age=31536000; HttpOnly;
33
+ Secure; SameSite=None
34
+ Strict-Transport-Security:
35
+ - max-age=31536000; includeSubDomains; preload
36
+ X-Bolt-Api-Version:
37
+ - '2022-01-01'
38
+ X-Bolt-Trace-Id:
39
+ - Root=1-626b74ea-63088a370dbb86263ae5a0ee
40
+ X-Device-Id:
41
+ - 9530ba4c63acf3627dd9347b948aa2a43b250ccbdcabea2d3456145e8d7149a4
42
+ X-Envoy-Upstream-Service-Time:
43
+ - '34'
44
+ Server:
45
+ - envoy
46
+ body:
47
+ encoding: UTF-8
48
+ string: '{"has_bolt_account":false}'
49
+ recorded_at: Fri, 29 Apr 2022 05:17:30 GMT
50
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api-sandbox.bolt.com/v1/oauth/token
6
+ body:
7
+ encoding: UTF-8
8
+ string: grant_type=authorization_code&code=Bolt%20Authorization%20Code&scope=openid%20bolt.account.manage&client_id=<PUBLISHABLE_KEY>&client_secret=<API_KEY>
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 400
19
+ message: Bad Request
20
+ headers:
21
+ Date:
22
+ - Fri, 06 May 2022 04:07:06 GMT
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Length:
26
+ - '285'
27
+ Connection:
28
+ - keep-alive
29
+ Cache-Control:
30
+ - no-store
31
+ Pragma:
32
+ - no-cache
33
+ Public-Key-Pins-Report-Only:
34
+ - max-age=2592000;pin-sha256="OGAVOYhLZd3ADKYGFZOED1c5m1ObMlRv9PyIWrO4Nd0=";pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho=";pin-sha256="IXHYSIdST+XY22J5ivybYkntMIfjA5P6pMKX2hWG1BE=";report-uri="https://77aa1bd121ef22d50247a23390ce6cff.report-uri.io/r/default/hpkp/reportOnly"
35
+ Set-Cookie:
36
+ - trk=060c417d-4f67-4b36-bf43-94ad1c62a96d; Path=/; Max-Age=31536000; HttpOnly;
37
+ Secure; SameSite=None
38
+ Strict-Transport-Security:
39
+ - max-age=31536000; includeSubDomains; preload
40
+ X-Bolt-Api-Version:
41
+ - '2022-01-01'
42
+ X-Bolt-Error-Code:
43
+ - '0'
44
+ X-Bolt-Trace-Id:
45
+ - Root=1-62749eea-4f3fe59a5770100c431b0442
46
+ X-Device-Id:
47
+ - 00d52d87772089f7901040d42ba5aa09c750b26ed688a8c25f07e35defbd2310
48
+ X-Envoy-Upstream-Service-Time:
49
+ - '32'
50
+ Server:
51
+ - envoy
52
+ body:
53
+ encoding: UTF-8
54
+ string: '{"error":"invalid_grant","error_description":"The provided authorization
55
+ grant (e.g., authorization code, resource owner credentials) or refresh token
56
+ is invalid, expired, revoked, does not match the redirection URI used in the
57
+ authorization request, or was issued to another client."}'
58
+ recorded_at: Fri, 06 May 2022 04:07:06 GMT
59
+ recorded_with: VCR 6.0.0