spree_api 5.3.5 → 5.4.0.beta

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.
Files changed (335) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +71 -33
  3. data/Rakefile +25 -0
  4. data/app/controllers/concerns/spree/api/v3/api_key_authentication.rb +51 -0
  5. data/app/controllers/concerns/spree/api/v3/error_handler.rb +255 -0
  6. data/app/controllers/concerns/spree/api/v3/http_caching.rb +90 -0
  7. data/app/controllers/concerns/spree/api/v3/jwt_authentication.rb +95 -0
  8. data/app/controllers/concerns/spree/api/v3/locale_and_currency.rb +73 -0
  9. data/app/controllers/concerns/spree/api/v3/order_concern.rb +51 -0
  10. data/app/controllers/concerns/spree/api/v3/resource_serializer.rb +41 -0
  11. data/app/controllers/spree/api/v3/base_controller.rb +42 -0
  12. data/app/controllers/spree/api/v3/resource_controller.rb +210 -0
  13. data/app/controllers/spree/api/v3/store/auth_controller.rb +140 -0
  14. data/app/controllers/spree/api/v3/store/base_controller.rb +12 -0
  15. data/app/controllers/spree/api/v3/store/cart_controller.rb +82 -0
  16. data/app/controllers/spree/api/v3/store/countries_controller.rb +31 -0
  17. data/app/controllers/spree/api/v3/store/currencies_controller.rb +18 -0
  18. data/app/controllers/spree/api/v3/store/customer/account_controller.rb +38 -0
  19. data/app/controllers/spree/api/v3/store/customer/addresses_controller.rb +85 -0
  20. data/app/controllers/spree/api/v3/store/customer/credit_cards_controller.rb +31 -0
  21. data/app/controllers/spree/api/v3/store/customer/gift_cards_controller.rb +36 -0
  22. data/app/controllers/spree/api/v3/store/customer/orders_controller.rb +35 -0
  23. data/app/controllers/spree/api/v3/store/customer/payment_setup_sessions_controller.rb +83 -0
  24. data/app/controllers/spree/api/v3/store/digitals_controller.rb +37 -0
  25. data/app/controllers/spree/api/v3/store/locales_controller.rb +24 -0
  26. data/app/controllers/spree/api/v3/store/orders/coupon_codes_controller.rb +68 -0
  27. data/app/controllers/spree/api/v3/store/orders/line_items_controller.rb +87 -0
  28. data/app/controllers/spree/api/v3/store/orders/payment_methods_controller.rb +43 -0
  29. data/app/controllers/spree/api/v3/store/orders/payment_sessions_controller.rb +96 -0
  30. data/app/controllers/spree/api/v3/store/orders/payments_controller.rb +45 -0
  31. data/app/controllers/spree/api/v3/store/orders/shipments_controller.rb +53 -0
  32. data/app/controllers/spree/api/v3/store/orders/store_credits_controller.rb +42 -0
  33. data/app/controllers/spree/api/v3/store/orders_controller.rb +125 -0
  34. data/app/controllers/spree/api/v3/store/products/filters_controller.rb +38 -0
  35. data/app/controllers/spree/api/v3/store/products_controller.rb +74 -0
  36. data/app/controllers/spree/api/v3/store/resource_controller.rb +12 -0
  37. data/app/controllers/spree/api/v3/store/stores_controller.rb +26 -0
  38. data/app/controllers/spree/api/v3/store/taxonomies_controller.rb +19 -0
  39. data/app/controllers/spree/api/v3/store/taxons/products_controller.rb +37 -0
  40. data/app/controllers/spree/api/v3/store/taxons_controller.rb +34 -0
  41. data/app/controllers/spree/api/v3/store/wishlist_items_controller.rb +33 -0
  42. data/app/controllers/spree/api/v3/store/wishlists_controller.rb +41 -0
  43. data/app/jobs/spree/webhook_delivery_job.rb +1 -4
  44. data/app/serializers/spree/api/v3/address_serializer.rb +22 -0
  45. data/app/serializers/spree/api/v3/admin/customer_serializer.rb +43 -0
  46. data/app/serializers/spree/api/v3/admin/metafield_serializer.rb +15 -0
  47. data/app/serializers/spree/api/v3/admin/order_serializer.rb +39 -0
  48. data/app/serializers/spree/api/v3/admin/price_serializer.rb +21 -0
  49. data/app/serializers/spree/api/v3/admin/product_serializer.rb +47 -0
  50. data/app/serializers/spree/api/v3/admin/taxon_serializer.rb +20 -0
  51. data/app/serializers/spree/api/v3/admin/taxonomy_serializer.rb +15 -0
  52. data/app/serializers/spree/api/v3/admin/variant_serializer.rb +44 -0
  53. data/app/serializers/spree/api/v3/asset_serializer.rb +20 -0
  54. data/app/serializers/spree/api/v3/base_serializer.rb +98 -0
  55. data/app/serializers/spree/api/v3/country_serializer.rb +35 -0
  56. data/app/serializers/spree/api/v3/credit_card_serializer.rb +12 -0
  57. data/app/serializers/spree/api/v3/currency_serializer.rb +14 -0
  58. data/app/serializers/spree/api/v3/customer_return_serializer.rb +17 -0
  59. data/app/serializers/spree/api/v3/customer_serializer.rb +19 -0
  60. data/app/serializers/spree/api/v3/digital_link_serializer.rb +30 -0
  61. data/app/serializers/spree/api/v3/digital_serializer.rb +17 -0
  62. data/app/serializers/spree/api/v3/export_serializer.rb +19 -0
  63. data/app/serializers/spree/api/v3/gift_card_batch_serializer.rb +28 -0
  64. data/app/serializers/spree/api/v3/gift_card_serializer.rb +78 -0
  65. data/app/serializers/spree/api/v3/image_serializer.rb +43 -0
  66. data/app/serializers/spree/api/v3/import_row_serializer.rb +24 -0
  67. data/app/serializers/spree/api/v3/import_serializer.rb +32 -0
  68. data/app/serializers/spree/api/v3/invitation_serializer.rb +47 -0
  69. data/app/serializers/spree/api/v3/line_item_serializer.rb +48 -0
  70. data/app/serializers/spree/api/v3/locale_serializer.rb +14 -0
  71. data/app/serializers/spree/{v2/storefront → api/v3}/metafield_serializer.rb +5 -3
  72. data/app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb +27 -0
  73. data/app/serializers/spree/api/v3/option_type_serializer.rb +11 -0
  74. data/app/serializers/spree/api/v3/option_value_serializer.rb +24 -0
  75. data/app/serializers/spree/api/v3/order_promotion_serializer.rb +16 -0
  76. data/app/serializers/spree/api/v3/order_serializer.rb +39 -0
  77. data/app/serializers/spree/api/v3/payment_method_serializer.rb +15 -0
  78. data/app/serializers/spree/api/v3/payment_serializer.rb +54 -0
  79. data/app/serializers/spree/api/v3/payment_session_serializer.rb +32 -0
  80. data/app/serializers/spree/api/v3/payment_setup_session_serializer.rb +33 -0
  81. data/app/serializers/spree/api/v3/payment_source_serializer.rb +18 -0
  82. data/app/serializers/spree/api/v3/post_category_serializer.rb +13 -0
  83. data/app/serializers/spree/api/v3/post_serializer.rb +25 -0
  84. data/app/serializers/spree/api/v3/price_serializer.rb +34 -0
  85. data/app/serializers/spree/api/v3/product_serializer.rb +108 -0
  86. data/app/serializers/spree/api/v3/promotion_serializer.rb +28 -0
  87. data/app/serializers/spree/api/v3/refund_serializer.rb +31 -0
  88. data/app/serializers/spree/api/v3/reimbursement_serializer.rb +28 -0
  89. data/app/serializers/spree/api/v3/report_serializer.rb +29 -0
  90. data/app/serializers/spree/api/v3/return_authorization_serializer.rb +31 -0
  91. data/app/serializers/spree/api/v3/return_item_serializer.rb +53 -0
  92. data/app/serializers/spree/api/v3/shipment_serializer.rb +19 -0
  93. data/app/serializers/spree/api/v3/shipping_method_serializer.rb +11 -0
  94. data/app/serializers/spree/api/v3/shipping_rate_serializer.rb +26 -0
  95. data/app/serializers/spree/api/v3/state_serializer.rb +14 -0
  96. data/app/serializers/spree/api/v3/stock_item_serializer.rb +23 -0
  97. data/app/serializers/spree/api/v3/stock_location_serializer.rb +18 -0
  98. data/app/serializers/spree/api/v3/stock_movement_serializer.rb +24 -0
  99. data/app/serializers/spree/api/v3/stock_transfer_serializer.rb +25 -0
  100. data/app/serializers/spree/api/v3/store_credit_serializer.rb +37 -0
  101. data/app/serializers/spree/api/v3/store_serializer.rb +38 -0
  102. data/app/serializers/spree/api/v3/taxon_serializer.rb +78 -0
  103. data/app/serializers/spree/api/v3/taxonomy_serializer.rb +33 -0
  104. data/app/serializers/spree/api/v3/variant_serializer.rb +86 -0
  105. data/app/serializers/spree/api/v3/wished_item_serializer.rb +22 -0
  106. data/app/serializers/spree/api/v3/wishlist_serializer.rb +25 -0
  107. data/app/services/spree/api/v3/filters_aggregator.rb +156 -0
  108. data/app/services/spree/api/v3/orders/update.rb +103 -0
  109. data/app/services/spree/webhooks/deliver_webhook.rb +16 -16
  110. data/app/subscribers/spree/webhook_event_subscriber.rb +1 -1
  111. data/config/initializers/alba.rb +5 -0
  112. data/config/initializers/pagy.rb +10 -0
  113. data/config/initializers/typelizer.rb +25 -0
  114. data/config/locales/en.yml +1 -0
  115. data/config/routes.rb +63 -196
  116. data/lib/spree/api/dependencies.rb +68 -0
  117. data/lib/spree/api/engine.rb +0 -5
  118. data/lib/spree/api/openapi/schema_helper.rb +177 -0
  119. data/lib/spree/api/testing_support/factories.rb +1 -3
  120. data/lib/spree/api/testing_support/v3/base.rb +118 -0
  121. data/lib/spree/api.rb +7 -4
  122. metadata +131 -264
  123. data/LICENSE.md +0 -57
  124. data/app/controllers/concerns/spree/api/v2/caching.rb +0 -40
  125. data/app/controllers/concerns/spree/api/v2/coupon_codes_helper.rb +0 -29
  126. data/app/controllers/concerns/spree/api/v2/number_resource.rb +0 -11
  127. data/app/controllers/concerns/spree/api/v2/platform/nested_set_reposition_concern.rb +0 -37
  128. data/app/controllers/concerns/spree/api/v2/platform/promotion_calculator_params.rb +0 -17
  129. data/app/controllers/concerns/spree/api/v2/platform/promotion_rule_params.rb +0 -16
  130. data/app/controllers/concerns/spree/api/v2/product_list_includes.rb +0 -21
  131. data/app/controllers/concerns/spree/api/v2/storefront/metadata_controller_concern.rb +0 -18
  132. data/app/controllers/concerns/spree/api/v2/storefront/order_concern.rb +0 -49
  133. data/app/controllers/spree/api/v2/base_controller.rb +0 -233
  134. data/app/controllers/spree/api/v2/data_feeds/google_controller.rb +0 -24
  135. data/app/controllers/spree/api/v2/platform/addresses_controller.rb +0 -23
  136. data/app/controllers/spree/api/v2/platform/adjustments_controller.rb +0 -23
  137. data/app/controllers/spree/api/v2/platform/classifications_controller.rb +0 -26
  138. data/app/controllers/spree/api/v2/platform/countries_controller.rb +0 -23
  139. data/app/controllers/spree/api/v2/platform/data_feeds_controller.rb +0 -19
  140. data/app/controllers/spree/api/v2/platform/digital_links_controller.rb +0 -29
  141. data/app/controllers/spree/api/v2/platform/digitals_controller.rb +0 -23
  142. data/app/controllers/spree/api/v2/platform/gift_cards_controller.rb +0 -23
  143. data/app/controllers/spree/api/v2/platform/line_items_controller.rb +0 -63
  144. data/app/controllers/spree/api/v2/platform/option_types_controller.rb +0 -19
  145. data/app/controllers/spree/api/v2/platform/option_values_controller.rb +0 -23
  146. data/app/controllers/spree/api/v2/platform/orders_controller.rb +0 -167
  147. data/app/controllers/spree/api/v2/platform/payment_methods_controller.rb +0 -31
  148. data/app/controllers/spree/api/v2/platform/payments_controller.rb +0 -21
  149. data/app/controllers/spree/api/v2/platform/products_controller.rb +0 -41
  150. data/app/controllers/spree/api/v2/platform/promotion_actions_controller.rb +0 -34
  151. data/app/controllers/spree/api/v2/platform/promotion_categories_controller.rb +0 -23
  152. data/app/controllers/spree/api/v2/platform/promotion_rules_controller.rb +0 -29
  153. data/app/controllers/spree/api/v2/platform/promotions_controller.rb +0 -35
  154. data/app/controllers/spree/api/v2/platform/resource_controller.rb +0 -154
  155. data/app/controllers/spree/api/v2/platform/roles_controller.rb +0 -19
  156. data/app/controllers/spree/api/v2/platform/shipments_controller.rb +0 -147
  157. data/app/controllers/spree/api/v2/platform/shipping_categories_controller.rb +0 -19
  158. data/app/controllers/spree/api/v2/platform/shipping_methods_controller.rb +0 -28
  159. data/app/controllers/spree/api/v2/platform/states_controller.rb +0 -23
  160. data/app/controllers/spree/api/v2/platform/stock_items_controller.rb +0 -23
  161. data/app/controllers/spree/api/v2/platform/stock_locations_controller.rb +0 -23
  162. data/app/controllers/spree/api/v2/platform/store_credit_categories_controller.rb +0 -19
  163. data/app/controllers/spree/api/v2/platform/store_credit_types_controller.rb +0 -19
  164. data/app/controllers/spree/api/v2/platform/store_credits_controller.rb +0 -23
  165. data/app/controllers/spree/api/v2/platform/tax_categories_controller.rb +0 -23
  166. data/app/controllers/spree/api/v2/platform/tax_rates_controller.rb +0 -27
  167. data/app/controllers/spree/api/v2/platform/taxonomies_controller.rb +0 -23
  168. data/app/controllers/spree/api/v2/platform/taxons_controller.rb +0 -59
  169. data/app/controllers/spree/api/v2/platform/users_controller.rb +0 -37
  170. data/app/controllers/spree/api/v2/platform/variants_controller.rb +0 -23
  171. data/app/controllers/spree/api/v2/platform/wished_items_controller.rb +0 -23
  172. data/app/controllers/spree/api/v2/platform/wishlists_controller.rb +0 -23
  173. data/app/controllers/spree/api/v2/platform/zones_controller.rb +0 -23
  174. data/app/controllers/spree/api/v2/resource_controller.rb +0 -79
  175. data/app/controllers/spree/api/v2/storefront/account/addresses_controller.rb +0 -77
  176. data/app/controllers/spree/api/v2/storefront/account/credit_cards_controller.rb +0 -52
  177. data/app/controllers/spree/api/v2/storefront/account/orders_controller.rb +0 -50
  178. data/app/controllers/spree/api/v2/storefront/account_controller.rb +0 -52
  179. data/app/controllers/spree/api/v2/storefront/cart_controller.rb +0 -246
  180. data/app/controllers/spree/api/v2/storefront/checkout_controller.rb +0 -183
  181. data/app/controllers/spree/api/v2/storefront/countries_controller.rb +0 -57
  182. data/app/controllers/spree/api/v2/storefront/digitals_controller.rb +0 -58
  183. data/app/controllers/spree/api/v2/storefront/order_status_controller.rb +0 -34
  184. data/app/controllers/spree/api/v2/storefront/policies_controller.rb +0 -31
  185. data/app/controllers/spree/api/v2/storefront/post_categories_controller.rb +0 -35
  186. data/app/controllers/spree/api/v2/storefront/posts_controller.rb +0 -51
  187. data/app/controllers/spree/api/v2/storefront/products_controller.rb +0 -66
  188. data/app/controllers/spree/api/v2/storefront/stores_controller.rb +0 -27
  189. data/app/controllers/spree/api/v2/storefront/taxons_controller.rb +0 -51
  190. data/app/controllers/spree/api/v2/storefront/variants_controller.rb +0 -41
  191. data/app/controllers/spree/api/v2/storefront/wishlists_controller.rb +0 -214
  192. data/app/helpers/spree/api/v2/collection_options_helpers.rb +0 -46
  193. data/app/helpers/spree/api/v2/display_money_helper.rb +0 -63
  194. data/app/helpers/spree/api/v2/store_media_serializer_images_concern.rb +0 -30
  195. data/app/models/concerns/spree/user_api_authentication.rb +0 -19
  196. data/app/models/concerns/spree/user_api_methods.rb +0 -7
  197. data/app/models/spree/oauth_access_grant.rb +0 -7
  198. data/app/models/spree/oauth_access_token.rb +0 -7
  199. data/app/models/spree/oauth_application.rb +0 -22
  200. data/app/paginators/spree/api/paginate.rb +0 -68
  201. data/app/presenters/spree/api/products/filters_presenter.rb +0 -39
  202. data/app/serializers/concerns/spree/api/v2/image_transformation_concern.rb +0 -15
  203. data/app/serializers/concerns/spree/api/v2/public_metafields_concern.rb +0 -15
  204. data/app/serializers/concerns/spree/api/v2/resource_serializer_concern.rb +0 -42
  205. data/app/serializers/concerns/spree/api/v2/taxon_image_transformation_concern.rb +0 -15
  206. data/app/serializers/spree/api/v2/base_serializer.rb +0 -43
  207. data/app/serializers/spree/api/v2/platform/address_serializer.rb +0 -15
  208. data/app/serializers/spree/api/v2/platform/adjustment_serializer.rb +0 -20
  209. data/app/serializers/spree/api/v2/platform/admin_user_serializer.rb +0 -11
  210. data/app/serializers/spree/api/v2/platform/asset_serializer.rb +0 -13
  211. data/app/serializers/spree/api/v2/platform/base_serializer.rb +0 -10
  212. data/app/serializers/spree/api/v2/platform/calculator_serializer.rb +0 -17
  213. data/app/serializers/spree/api/v2/platform/classification_serializer.rb +0 -14
  214. data/app/serializers/spree/api/v2/platform/country_serializer.rb +0 -13
  215. data/app/serializers/spree/api/v2/platform/credit_card_serializer.rb +0 -14
  216. data/app/serializers/spree/api/v2/platform/customer_return_serializer.rb +0 -17
  217. data/app/serializers/spree/api/v2/platform/data_feed_serializer.rb +0 -13
  218. data/app/serializers/spree/api/v2/platform/digital_link_serializer.rb +0 -16
  219. data/app/serializers/spree/api/v2/platform/digital_serializer.rb +0 -29
  220. data/app/serializers/spree/api/v2/platform/gift_card_serializer.rb +0 -17
  221. data/app/serializers/spree/api/v2/platform/image_serializer.rb +0 -17
  222. data/app/serializers/spree/api/v2/platform/inventory_unit_serializer.rb +0 -19
  223. data/app/serializers/spree/api/v2/platform/line_item_serializer.rb +0 -19
  224. data/app/serializers/spree/api/v2/platform/log_entry_serializer.rb +0 -13
  225. data/app/serializers/spree/api/v2/platform/metafield_serializer.rb +0 -21
  226. data/app/serializers/spree/api/v2/platform/option_type_serializer.rb +0 -13
  227. data/app/serializers/spree/api/v2/platform/option_value_serializer.rb +0 -13
  228. data/app/serializers/spree/api/v2/platform/order_promotion_serializer.rb +0 -14
  229. data/app/serializers/spree/api/v2/platform/order_serializer.rb +0 -31
  230. data/app/serializers/spree/api/v2/platform/payment_capture_event_serializer.rb +0 -13
  231. data/app/serializers/spree/api/v2/platform/payment_method_serializer.rb +0 -18
  232. data/app/serializers/spree/api/v2/platform/payment_serializer.rb +0 -22
  233. data/app/serializers/spree/api/v2/platform/payment_source_serializer.rb +0 -12
  234. data/app/serializers/spree/api/v2/platform/price_serializer.rb +0 -19
  235. data/app/serializers/spree/api/v2/platform/product_property_serializer.rb +0 -11
  236. data/app/serializers/spree/api/v2/platform/product_serializer.rb +0 -90
  237. data/app/serializers/spree/api/v2/platform/promotion_action_line_item_serializer.rb +0 -14
  238. data/app/serializers/spree/api/v2/platform/promotion_action_serializer.rb +0 -19
  239. data/app/serializers/spree/api/v2/platform/promotion_category_serializer.rb +0 -13
  240. data/app/serializers/spree/api/v2/platform/promotion_rule_serializer.rb +0 -21
  241. data/app/serializers/spree/api/v2/platform/promotion_serializer.rb +0 -17
  242. data/app/serializers/spree/api/v2/platform/property_serializer.rb +0 -11
  243. data/app/serializers/spree/api/v2/platform/prototype_serializer.rb +0 -15
  244. data/app/serializers/spree/api/v2/platform/refund_reason_serializer.rb +0 -11
  245. data/app/serializers/spree/api/v2/platform/refund_serializer.rb +0 -17
  246. data/app/serializers/spree/api/v2/platform/reimbursement_credit_serializer.rb +0 -10
  247. data/app/serializers/spree/api/v2/platform/reimbursement_serializer.rb +0 -19
  248. data/app/serializers/spree/api/v2/platform/reimbursement_type_serializer.rb +0 -11
  249. data/app/serializers/spree/api/v2/platform/return_authorization_reason_serializer.rb +0 -11
  250. data/app/serializers/spree/api/v2/platform/return_authorization_serializer.rb +0 -17
  251. data/app/serializers/spree/api/v2/platform/return_item_serializer.rb +0 -16
  252. data/app/serializers/spree/api/v2/platform/role_serializer.rb +0 -11
  253. data/app/serializers/spree/api/v2/platform/shipment_serializer.rb +0 -22
  254. data/app/serializers/spree/api/v2/platform/shipping_category_serializer.rb +0 -11
  255. data/app/serializers/spree/api/v2/platform/shipping_method_serializer.rb +0 -16
  256. data/app/serializers/spree/api/v2/platform/shipping_rate_serializer.rb +0 -15
  257. data/app/serializers/spree/api/v2/platform/state_change_serializer.rb +0 -13
  258. data/app/serializers/spree/api/v2/platform/state_serializer.rb +0 -13
  259. data/app/serializers/spree/api/v2/platform/stock_item_serializer.rb +0 -18
  260. data/app/serializers/spree/api/v2/platform/stock_location_serializer.rb +0 -14
  261. data/app/serializers/spree/api/v2/platform/stock_movement_serializer.rb +0 -11
  262. data/app/serializers/spree/api/v2/platform/stock_transfer_serializer.rb +0 -15
  263. data/app/serializers/spree/api/v2/platform/store_credit_category_serializer.rb +0 -12
  264. data/app/serializers/spree/api/v2/platform/store_credit_event_serializer.rb +0 -14
  265. data/app/serializers/spree/api/v2/platform/store_credit_serializer.rb +0 -18
  266. data/app/serializers/spree/api/v2/platform/store_credit_type_serializer.rb +0 -12
  267. data/app/serializers/spree/api/v2/platform/store_serializer.rb +0 -14
  268. data/app/serializers/spree/api/v2/platform/tax_category_serializer.rb +0 -13
  269. data/app/serializers/spree/api/v2/platform/tax_rate_serializer.rb +0 -14
  270. data/app/serializers/spree/api/v2/platform/taxon_image_serializer.rb +0 -15
  271. data/app/serializers/spree/api/v2/platform/taxon_serializer.rb +0 -47
  272. data/app/serializers/spree/api/v2/platform/taxonomy_serializer.rb +0 -14
  273. data/app/serializers/spree/api/v2/platform/user_serializer.rb +0 -37
  274. data/app/serializers/spree/api/v2/platform/variant_serializer.rb +0 -66
  275. data/app/serializers/spree/api/v2/platform/wished_item_serializer.rb +0 -29
  276. data/app/serializers/spree/api/v2/platform/wishlist_serializer.rb +0 -19
  277. data/app/serializers/spree/api/v2/platform/zone_member_serializer.rb +0 -13
  278. data/app/serializers/spree/api/v2/platform/zone_serializer.rb +0 -13
  279. data/app/serializers/spree/v2/storefront/address_serializer.rb +0 -22
  280. data/app/serializers/spree/v2/storefront/base_serializer.rb +0 -10
  281. data/app/serializers/spree/v2/storefront/cart_serializer.rb +0 -67
  282. data/app/serializers/spree/v2/storefront/country_serializer.rb +0 -24
  283. data/app/serializers/spree/v2/storefront/credit_card_serializer.rb +0 -15
  284. data/app/serializers/spree/v2/storefront/digital_link_serializer.rb +0 -11
  285. data/app/serializers/spree/v2/storefront/estimated_shipping_rate_serializer.rb +0 -35
  286. data/app/serializers/spree/v2/storefront/gift_card_serializer.rb +0 -16
  287. data/app/serializers/spree/v2/storefront/image_serializer.rb +0 -13
  288. data/app/serializers/spree/v2/storefront/line_item_serializer.rb +0 -23
  289. data/app/serializers/spree/v2/storefront/option_type_serializer.rb +0 -15
  290. data/app/serializers/spree/v2/storefront/option_value_serializer.rb +0 -13
  291. data/app/serializers/spree/v2/storefront/order_promotion_serializer.rb +0 -14
  292. data/app/serializers/spree/v2/storefront/order_serializer.rb +0 -11
  293. data/app/serializers/spree/v2/storefront/payment_method_serializer.rb +0 -17
  294. data/app/serializers/spree/v2/storefront/payment_serializer.rb +0 -20
  295. data/app/serializers/spree/v2/storefront/payment_source_serializer.rb +0 -12
  296. data/app/serializers/spree/v2/storefront/policy_serializer.rb +0 -19
  297. data/app/serializers/spree/v2/storefront/post_category_serializer.rb +0 -23
  298. data/app/serializers/spree/v2/storefront/post_serializer.rb +0 -51
  299. data/app/serializers/spree/v2/storefront/product_property_serializer.rb +0 -19
  300. data/app/serializers/spree/v2/storefront/product_serializer.rb +0 -92
  301. data/app/serializers/spree/v2/storefront/shipment_serializer.rb +0 -26
  302. data/app/serializers/spree/v2/storefront/shipping_category_serializer.rb +0 -10
  303. data/app/serializers/spree/v2/storefront/shipping_method_serializer.rb +0 -12
  304. data/app/serializers/spree/v2/storefront/shipping_rate_serializer.rb +0 -26
  305. data/app/serializers/spree/v2/storefront/state_serializer.rb +0 -11
  306. data/app/serializers/spree/v2/storefront/stock_location_serializer.rb +0 -11
  307. data/app/serializers/spree/v2/storefront/store_credit_category_serializer.rb +0 -11
  308. data/app/serializers/spree/v2/storefront/store_credit_event_serializer.rb +0 -15
  309. data/app/serializers/spree/v2/storefront/store_credit_serializer.rb +0 -19
  310. data/app/serializers/spree/v2/storefront/store_credit_type_serializer.rb +0 -11
  311. data/app/serializers/spree/v2/storefront/store_serializer.rb +0 -18
  312. data/app/serializers/spree/v2/storefront/taxon_image_serializer.rb +0 -13
  313. data/app/serializers/spree/v2/storefront/taxon_serializer.rb +0 -55
  314. data/app/serializers/spree/v2/storefront/taxonomy_serializer.rb +0 -13
  315. data/app/serializers/spree/v2/storefront/user_serializer.rb +0 -33
  316. data/app/serializers/spree/v2/storefront/variant_serializer.rb +0 -58
  317. data/app/serializers/spree/v2/storefront/wished_item_serializer.rb +0 -29
  318. data/app/serializers/spree/v2/storefront/wishlist_serializer.rb +0 -17
  319. data/config/initializers/doorkeeper.rb +0 -50
  320. data/config/initializers/json_api_mime_types.rb +0 -8
  321. data/config/initializers/user_class_extensions.rb +0 -7
  322. data/db/migrate/20100107141738_add_api_key_to_spree_users.rb +0 -7
  323. data/db/migrate/20120411123334_resize_api_key_field.rb +0 -7
  324. data/db/migrate/20120530054546_rename_api_key_to_spree_api_key.rb +0 -7
  325. data/db/migrate/20131017162334_add_index_to_user_spree_api_key.rb +0 -7
  326. data/db/migrate/20180320110726_create_doorkeeper_tables.rb +0 -69
  327. data/db/migrate/20210727102516_change_integer_id_columns_type.rb +0 -9
  328. data/db/migrate/20210919183228_enable_polymorphic_resource_owner.rb +0 -21
  329. data/lib/generators/spree/api/install/install_generator.rb +0 -24
  330. data/lib/spree/api/testing_support/factories/oauth_application_factory.rb +0 -6
  331. data/lib/spree/api/testing_support/serializers.rb +0 -15
  332. data/lib/spree/api/testing_support/v2/base.rb +0 -13
  333. data/lib/spree/api/testing_support/v2/current_order.rb +0 -116
  334. data/lib/spree/api/testing_support/v2/platform_contexts.rb +0 -272
  335. data/lib/spree/api/testing_support/v2/serializers_params.rb +0 -16
@@ -1,13 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class TaxonomySerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :taxonomy
8
-
9
- attributes :name, :position, :public_metadata
10
- end
11
- end
12
- end
13
- end
@@ -1,33 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class UserSerializer < BaseSerializer
5
- set_type :user
6
-
7
- attributes :email, :first_name, :selected_locale, :last_name, :public_metadata
8
-
9
- attribute :tags, &:tag_list
10
-
11
- attribute :store_credits do |user|
12
- user.total_available_store_credit
13
- end
14
-
15
- attribute :completed_orders do |object|
16
- object.orders.complete.count
17
- end
18
-
19
- has_one :default_billing_address,
20
- id_method_name: :bill_address_id,
21
- object_method_name: :bill_address,
22
- record_type: :address,
23
- serializer: Spree.api.storefront_address_serializer
24
-
25
- has_one :default_shipping_address,
26
- id_method_name: :ship_address_id,
27
- object_method_name: :ship_address,
28
- record_type: :address,
29
- serializer: Spree.api.storefront_address_serializer
30
- end
31
- end
32
- end
33
- end
@@ -1,58 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class VariantSerializer < BaseSerializer
5
- include ::Spree::Api::V2::DisplayMoneyHelper
6
- include Spree::Api::V2::PublicMetafieldsConcern
7
-
8
- set_type :variant
9
-
10
- attributes :sku, :barcode, :weight, :height, :width, :depth, :is_master, :options_text, :options, :public_metadata
11
-
12
- attribute :purchasable do |variant|
13
- variant.purchasable?
14
- end
15
-
16
- attribute :in_stock do |variant|
17
- variant.in_stock?
18
- end
19
-
20
- attribute :backorderable do |variant|
21
- variant.backorderable?
22
- end
23
-
24
- attribute :currency do |_product, params|
25
- params[:currency]
26
- end
27
-
28
- attribute :price do |product, params|
29
- price(product, params[:currency], pricing_context_options(params))
30
- end
31
-
32
- attribute :display_price do |product, params|
33
- display_price(product, params[:currency], pricing_context_options(params))
34
- end
35
-
36
- attribute :compare_at_price do |product, params|
37
- compare_at_price(product, params[:currency], pricing_context_options(params))
38
- end
39
-
40
- attribute :display_compare_at_price do |product, params|
41
- display_compare_at_price(product, params[:currency], pricing_context_options(params))
42
- end
43
-
44
- def self.pricing_context_options(params)
45
- {
46
- store: params[:store],
47
- user: params[:user],
48
- tax_zone: params.dig(:price_options, :tax_zone)
49
- }
50
- end
51
-
52
- belongs_to :product, serializer: Spree.api.storefront_product_serializer
53
- has_many :images, serializer: Spree.api.storefront_image_serializer
54
- has_many :option_values, serializer: Spree.api.storefront_option_value_serializer
55
- end
56
- end
57
- end
58
- end
@@ -1,29 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class WishedItemSerializer < BaseSerializer
5
- set_type :wished_item
6
-
7
- attributes :quantity
8
-
9
- attribute :price do |wished_item, params|
10
- wished_item.price(currency: params[:currency])
11
- end
12
-
13
- attribute :total do |wished_item, params|
14
- wished_item.total(currency: params[:currency])
15
- end
16
-
17
- attribute :display_price do |wished_item, params|
18
- wished_item.display_price(currency: params[:currency]).to_s
19
- end
20
-
21
- attribute :display_total do |wished_item, params|
22
- wished_item.display_total(currency: params[:currency]).to_s
23
- end
24
-
25
- belongs_to :variant, serializer: Spree.api.storefront_variant_serializer
26
- end
27
- end
28
- end
29
- end
@@ -1,17 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class WishlistSerializer < BaseSerializer
5
- set_type :wishlist
6
-
7
- attributes :token, :name, :is_private, :is_default
8
-
9
- attribute :variant_included do |wishlist, params|
10
- wishlist.include?(params[:is_variant_included])
11
- end
12
-
13
- has_many :wished_items, serializer: Spree.api.storefront_wished_item_serializer
14
- end
15
- end
16
- end
17
- end
@@ -1,50 +0,0 @@
1
- Doorkeeper.configure do
2
- orm :active_record
3
- use_refresh_token
4
- api_only
5
- base_controller 'Spree::Api::V2::BaseController'
6
- base_metal_controller 'Spree::Api::V2::BaseController'
7
-
8
- # FIXME: we should only skip this for Storefront API until v5
9
- # we should not skip this for Platform API
10
- skip_client_authentication_for_password_grant { true } if defined?(skip_client_authentication_for_password_grant)
11
-
12
- resource_owner_authenticator { current_spree_user }
13
- use_polymorphic_resource_owner
14
-
15
- resource_owner_from_credentials do
16
- user = Spree.user_class.find_for_database_authentication(email: params[:username])
17
-
18
- next if user.nil?
19
-
20
- if defined?(Spree::Auth::Config) && Spree::Auth::Config[:confirmable] == true
21
- user if user.active_for_authentication? && user.valid_for_authentication? { user.valid_password?(params[:password]) }
22
- elsif user&.valid_for_authentication? { user.valid_password?(params[:password]) }
23
- user
24
- end
25
- end
26
-
27
- admin_authenticator do |routes|
28
- current_spree_user&.spree_admin?(Spree::Store.current) || redirect_to(routes.root_url)
29
- end
30
-
31
- grant_flows %w[password client_credentials]
32
-
33
- allow_blank_redirect_uri true
34
-
35
- handle_auth_errors :raise
36
-
37
- access_token_methods :from_bearer_authorization, :from_access_token_param
38
-
39
- optional_scopes :admin, :write, :read
40
-
41
- access_token_class 'Spree::OauthAccessToken'
42
- access_grant_class 'Spree::OauthAccessGrant'
43
- application_class 'Spree::OauthApplication'
44
-
45
- # using Bcrupt for token secrets is currently not supported by Doorkeeper
46
- hash_token_secrets fallback: :plain
47
- hash_application_secrets fallback: :plain, using: '::Doorkeeper::SecretStoring::BCrypt'
48
-
49
- access_token_expires_in 1.month
50
- end
@@ -1,8 +0,0 @@
1
- api_mime_types = %w(
2
- application/vnd.api+json
3
- text/x-json
4
- application/json
5
- )
6
-
7
- Mime::Type.unregister :json
8
- Mime::Type.register 'application/json', :json, api_mime_types
@@ -1,7 +0,0 @@
1
- # Ensure that Spree.user_class includes the UserApiMethods concern
2
-
3
- Spree::Core::Engine.config.to_prepare do
4
- if Spree.user_class && !Spree.user_class.included_modules.include?(Spree::UserApiMethods)
5
- Spree.user_class.include Spree::UserApiMethods
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- class AddApiKeyToSpreeUsers < ActiveRecord::Migration[4.2]
2
- def change
3
- unless defined?(User)
4
- add_column :spree_users, :api_key, :string, limit: 40
5
- end
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- class ResizeApiKeyField < ActiveRecord::Migration[4.2]
2
- def change
3
- unless defined?(User)
4
- change_column :spree_users, :api_key, :string, limit: 48
5
- end
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- class RenameApiKeyToSpreeApiKey < ActiveRecord::Migration[4.2]
2
- def change
3
- unless defined?(User)
4
- rename_column :spree_users, :api_key, :spree_api_key
5
- end
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- class AddIndexToUserSpreeApiKey < ActiveRecord::Migration[4.2]
2
- def change
3
- unless defined?(User)
4
- add_index :spree_users, :spree_api_key
5
- end
6
- end
7
- end
@@ -1,69 +0,0 @@
1
- class CreateDoorkeeperTables < ActiveRecord::Migration[5.1]
2
- def change
3
- create_table :spree_oauth_applications do |t|
4
- t.string :name, null: false
5
- t.string :uid, null: false
6
- t.string :secret, null: false
7
- t.text :redirect_uri, null: false
8
- t.string :scopes, null: false, default: ''
9
- t.boolean :confidential, null: false, default: true
10
- t.timestamps null: false
11
- end
12
-
13
- add_index :spree_oauth_applications, :uid, unique: true
14
-
15
- create_table :spree_oauth_access_grants do |t|
16
- t.integer :resource_owner_id, null: false
17
- t.references :application, null: false
18
- t.string :token, null: false
19
- t.integer :expires_in, null: false
20
- t.text :redirect_uri, null: false
21
- t.datetime :created_at, null: false
22
- t.datetime :revoked_at
23
- t.string :scopes
24
- end
25
-
26
- add_index :spree_oauth_access_grants, :token, unique: true
27
- add_foreign_key(
28
- :spree_oauth_access_grants,
29
- :spree_oauth_applications,
30
- column: :application_id
31
- )
32
-
33
- create_table :spree_oauth_access_tokens do |t|
34
- t.integer :resource_owner_id
35
- t.references :application
36
-
37
- # If you use a custom token generator you may need to change this column
38
- # from string to text, so that it accepts tokens larger than 255
39
- # characters. More info on custom token generators in:
40
- # https://github.com/doorkeeper-gem/doorkeeper/tree/v3.0.0.rc1#custom-access-token-generator
41
- #
42
- # t.text :token, null: false
43
- t.string :token, null: false
44
-
45
- t.string :refresh_token
46
- t.integer :expires_in
47
- t.datetime :revoked_at
48
- t.datetime :created_at, null: false
49
- t.string :scopes
50
-
51
- # If there is a previous_refresh_token column,
52
- # refresh tokens will be revoked after a related access token is used.
53
- # If there is no previous_refresh_token column,
54
- # previous tokens are revoked as soon as a new access token is created.
55
- # Comment out this line if you'd rather have refresh tokens
56
- # instantly revoked.
57
- t.string :previous_refresh_token, null: false, default: ""
58
- end
59
-
60
- add_index :spree_oauth_access_tokens, :token, unique: true
61
- add_index :spree_oauth_access_tokens, :resource_owner_id
62
- add_index :spree_oauth_access_tokens, :refresh_token, unique: true
63
- add_foreign_key(
64
- :spree_oauth_access_tokens,
65
- :spree_oauth_applications,
66
- column: :application_id
67
- )
68
- end
69
- end
@@ -1,9 +0,0 @@
1
- class ChangeIntegerIdColumnsType < ActiveRecord::Migration[5.2]
2
- def change
3
- change_column :spree_oauth_access_grants, :resource_owner_id, :bigint
4
- change_column :spree_oauth_access_grants, :application_id, :bigint
5
-
6
- change_column :spree_oauth_access_tokens, :resource_owner_id, :bigint
7
- change_column :spree_oauth_access_tokens, :application_id, :bigint
8
- end
9
- end
@@ -1,21 +0,0 @@
1
- class EnablePolymorphicResourceOwner < ActiveRecord::Migration[5.2]
2
- def change
3
- add_column :spree_oauth_access_tokens, :resource_owner_type, :string
4
- add_column :spree_oauth_access_grants, :resource_owner_type, :string
5
- change_column_null :spree_oauth_access_grants, :resource_owner_type, false
6
-
7
- add_index :spree_oauth_access_tokens,
8
- [:resource_owner_id, :resource_owner_type],
9
- name: 'polymorphic_owner_oauth_access_tokens'
10
-
11
- add_index :spree_oauth_access_grants,
12
- [:resource_owner_id, :resource_owner_type],
13
- name: 'polymorphic_owner_oauth_access_grants'
14
-
15
- Spree::OauthAccessToken.reset_column_information
16
- Spree::OauthAccessToken.update_all(resource_owner_type: Spree.user_class)
17
-
18
- Spree::OauthAccessGrant.reset_column_information
19
- Spree::OauthAccessGrant.update_all(resource_owner_type: Spree.user_class)
20
- end
21
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree
4
- module Api
5
- module Generators
6
- class InstallGenerator < Rails::Generators::Base
7
- class_option :migrate, type: :boolean, default: true
8
-
9
- def add_migrations
10
- run 'bundle exec rake railties:install:migrations FROM=spree_api'
11
- end
12
-
13
- def run_migrations
14
- run_migrations = options[:migrate] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]'))
15
- if run_migrations
16
- run 'bin/rails db:migrate'
17
- else
18
- puts 'Skipping rails db:migrate, don\'t forget to run it!'
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,6 +0,0 @@
1
- FactoryBot.define do
2
- factory :oauth_application, class: Spree::OauthApplication do
3
- name { "Admin Panel" }
4
- scopes { "admin" }
5
- end
6
- end
@@ -1,15 +0,0 @@
1
- module Spree
2
- class TestArgumentsJob < Spree::BaseJob
3
- def perform(serializer); end
4
- end
5
- end
6
-
7
- shared_examples 'an ActiveJob serializable hash' do
8
- it 'can be serialized by ActiveJob' do
9
- # It should fail if subject contains any custom instance (e.g Spree::Money)
10
- expect { Spree::TestArgumentsJob.perform_later(subject) }.not_to raise_error
11
- expect { Spree::TestArgumentsJob.perform_later(subject.merge(price: Spree::Money.new(0))) }.to(
12
- raise_error(ActiveJob::SerializationError)
13
- )
14
- end
15
- end
@@ -1,13 +0,0 @@
1
- shared_context 'API v2 tokens' do
2
- let(:token) { Spree::OauthAccessToken.create!(resource_owner: user, expires_in: nil) }
3
- let(:headers_bearer) { { 'Authorization' => "Bearer #{token.token}" } }
4
- let(:headers_order_token) { { 'X-Spree-Order-Token' => order.token } }
5
- end
6
-
7
- [200, 201, 204, 400, 401, 404, 403, 422].each do |status_code|
8
- shared_examples "returns #{status_code} HTTP status" do
9
- it "returns #{status_code}" do
10
- expect(response.status).to eq(status_code)
11
- end
12
- end
13
- end
@@ -1,116 +0,0 @@
1
- def ensure_order_totals
2
- order.update_with_updater!
3
- end
4
-
5
- shared_context 'creates order with line item' do
6
- let!(:line_item) { create(:line_item, order: order, currency: currency) }
7
- let!(:headers) { headers_bearer }
8
-
9
- before do
10
- order.reload
11
- ensure_order_totals
12
- end
13
- end
14
-
15
- shared_context 'order with a physical line item' do
16
- include_context 'creates order with line item'
17
- end
18
-
19
- shared_context 'order with a digital line item' do
20
- let(:digital_shipping_method) { create(:digital_shipping_method) }
21
- let(:digital_product) { create(:product, shipping_category: digital_shipping_method.shipping_categories.first) }
22
- let(:variant_digital) { create(:variant, product: digital_product) }
23
- let!(:digital) { create(:digital, variant: variant_digital) }
24
- let!(:line_item) { create(:line_item, variant: variant_digital, order: order, currency: currency) }
25
- let!(:headers) { headers_bearer }
26
-
27
- before do
28
- order.reload
29
- ensure_order_totals
30
- end
31
- end
32
-
33
- shared_context 'order with a physical and digital line item' do
34
- let(:digital_shipping_method) { create(:digital_shipping_method) }
35
- let(:product_digital) { create(:product, shipping_category: digital_shipping_method.shipping_categories.first) }
36
- let(:variant_digital) { create(:variant, product: product_digital) }
37
- let!(:digital) { create(:digital, variant: variant_digital) }
38
- let!(:digital_line_item) { create(:line_item, variant: variant_digital, order: order, currency: currency) }
39
- let!(:physical_line_item) { create(:line_item, order: order, currency: currency) }
40
-
41
- let!(:headers) { headers_bearer }
42
-
43
- before do
44
- order.reload
45
- ensure_order_totals
46
- end
47
- end
48
-
49
- shared_context 'creates guest order with guest token' do
50
- let(:guest_token) { 'guest_token' }
51
- let!(:order) { create(:order, token: guest_token, store: store, currency: currency) }
52
- let!(:line_item) { create(:line_item, order: order, currency: currency) }
53
- let!(:headers) { headers_order_token }
54
-
55
- before { ensure_order_totals }
56
- end
57
-
58
- shared_examples 'returns valid cart JSON' do
59
- it 'returns a valid cart JSON response' do
60
- order.reload
61
- expect(json_response['data']).to be_present
62
- expect(json_response['data']).to have_id(order.id.to_s)
63
- expect(json_response['data']).to have_type('cart')
64
- expect(json_response['data']).to have_attribute(:number).with_value(order.number)
65
- expect(json_response['data']).to have_attribute(:state).with_value(order.state)
66
- expect(json_response['data']).to have_attribute(:payment_state).with_value(order.payment_state)
67
- expect(json_response['data']).to have_attribute(:shipment_state).with_value(order.shipment_state)
68
- expect(json_response['data']).to have_attribute(:token).with_value(order.token)
69
- expect(json_response['data']).to have_attribute(:total).with_value(order.total.to_s)
70
- expect(json_response['data']).to have_attribute(:item_total).with_value(order.item_total.to_s)
71
- expect(json_response['data']).to have_attribute(:ship_total).with_value(order.ship_total.to_s)
72
- expect(json_response['data']).to have_attribute(:adjustment_total).with_value(order.adjustment_total.to_s)
73
- expect(json_response['data']).to have_attribute(:included_tax_total).with_value(order.included_tax_total.to_s)
74
- expect(json_response['data']).to have_attribute(:additional_tax_total).with_value(order.additional_tax_total.to_s)
75
- expect(json_response['data']).to have_attribute(:display_additional_tax_total).with_value(order.display_additional_tax_total.to_s)
76
- expect(json_response['data']).to have_attribute(:display_included_tax_total).with_value(order.display_included_tax_total.to_s)
77
- expect(json_response['data']).to have_attribute(:tax_total).with_value(order.tax_total.to_s)
78
- expect(json_response['data']).to have_attribute(:currency).with_value(order.currency.to_s)
79
- expect(json_response['data']).to have_attribute(:email).with_value(order.email)
80
- expect(json_response['data']).to have_attribute(:display_item_total).with_value(order.display_item_total.to_s)
81
- expect(json_response['data']).to have_attribute(:display_ship_total).with_value(order.display_ship_total.to_s)
82
- expect(json_response['data']).to have_attribute(:display_adjustment_total).with_value(order.display_adjustment_total.to_s)
83
- expect(json_response['data']).to have_attribute(:display_tax_total).with_value(order.display_tax_total.to_s)
84
- expect(json_response['data']).to have_attribute(:item_count).with_value(order.item_count)
85
- expect(json_response['data']).to have_attribute(:special_instructions).with_value(order.special_instructions)
86
- expect(json_response['data']).to have_attribute(:promo_total).with_value(order.promo_total.to_s)
87
- expect(json_response['data']).to have_attribute(:display_promo_total).with_value(order.display_promo_total.to_s)
88
- expect(json_response['data']).to have_attribute(:display_total).with_value(order.display_total.to_s)
89
- expect(json_response['data']).to have_attribute(:pre_tax_item_amount).with_value(order.pre_tax_item_amount.to_s)
90
- expect(json_response['data']).to have_attribute(:display_pre_tax_item_amount).with_value(order.display_pre_tax_item_amount.to_s)
91
- expect(json_response['data']).to have_attribute(:pre_tax_total).with_value(order.pre_tax_total.to_s)
92
- expect(json_response['data']).to have_attribute(:display_pre_tax_total).with_value(order.display_pre_tax_total.to_s)
93
- expect(json_response['data']).to have_relationships(:user, :line_items, :variants, :billing_address, :shipping_address, :payments, :shipments,
94
- :promotions)
95
- end
96
- end
97
-
98
- shared_examples 'no current order' do
99
- context "order doesn't exist" do
100
- before do
101
- order.destroy
102
- execute
103
- end
104
-
105
- it_behaves_like 'returns 404 HTTP status'
106
- end
107
-
108
- context 'already completed order' do
109
- before do
110
- order.update_column(:completed_at, Time.current)
111
- execute
112
- end
113
-
114
- it_behaves_like 'returns 404 HTTP status'
115
- end
116
- end