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,77 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Storefront
5
- module Account
6
- class AddressesController < ::Spree::Api::V2::ResourceController
7
- include Spree::BaseHelper
8
-
9
- before_action :require_spree_current_user
10
-
11
- def create
12
- spree_authorize! :create, model_class
13
-
14
- result = create_service.call(user: spree_current_user, address_params: address_params)
15
- render_result(result)
16
- end
17
-
18
- def update
19
- spree_authorize! :update, resource
20
-
21
- result = update_service.call(address: resource, address_params: address_params)
22
- render_result(result)
23
- end
24
-
25
- def destroy
26
- spree_authorize! :destroy, resource
27
-
28
- if resource.destroy
29
- head 204
30
- else
31
- render_error_payload(resource.errors)
32
- end
33
- end
34
-
35
- private
36
-
37
- def collection
38
- collection_finder.new(scope: scope, params: finder_params).execute
39
- end
40
-
41
- def scope
42
- super.where(user: spree_current_user, country: available_countries).not_deleted
43
- end
44
-
45
- def model_class
46
- Spree::Address
47
- end
48
-
49
- def collection_finder
50
- Spree.api.storefront_address_finder
51
- end
52
-
53
- def collection_serializer
54
- Spree.api.storefront_address_serializer
55
- end
56
-
57
- def resource_serializer
58
- Spree.api.storefront_address_serializer
59
- end
60
-
61
- def create_service
62
- Spree.api.storefront_address_create_service
63
- end
64
-
65
- def update_service
66
- Spree.api.storefront_address_update_service
67
- end
68
-
69
- def address_params
70
- params.require(:address).permit(permitted_address_attributes)
71
- end
72
- end
73
- end
74
- end
75
- end
76
- end
77
- end
@@ -1,52 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Storefront
5
- module Account
6
- class CreditCardsController < ::Spree::Api::V2::ResourceController
7
- before_action :require_spree_current_user
8
-
9
- def destroy
10
- spree_authorize! :destroy, resource, resource
11
-
12
- destroy_service.call(card: resource)
13
- end
14
-
15
- private
16
-
17
- def resource
18
- params[:id].eql?('default') ? scope.default.first! : scope.find(params[:id])
19
- end
20
-
21
- def model_class
22
- Spree::CreditCard
23
- end
24
-
25
- def scope
26
- super.not_expired.not_removed.where(
27
- user: spree_current_user,
28
- payment_method: current_store.payment_methods.available_on_front_end
29
- )
30
- end
31
-
32
- def collection_serializer
33
- Spree.api.storefront_credit_card_serializer
34
- end
35
-
36
- def collection_finder
37
- Spree.api.storefront_credit_card_finder
38
- end
39
-
40
- def resource_serializer
41
- Spree.api.storefront_credit_card_serializer
42
- end
43
-
44
- def destroy_service
45
- Spree.api.storefront_credit_cards_destroy_service
46
- end
47
- end
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,50 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Storefront
5
- module Account
6
- class OrdersController < ::Spree::Api::V2::ResourceController
7
- before_action :require_spree_current_user
8
-
9
- private
10
-
11
- def collection
12
- collection_finder.new(user: spree_current_user, store: current_store).execute
13
- end
14
-
15
- def resource
16
- resource = resource_finder.new(user: spree_current_user, number: params[:id], store: current_store).execute.take
17
- raise ActiveRecord::RecordNotFound if resource.nil?
18
-
19
- resource
20
- end
21
-
22
- def allowed_sort_attributes
23
- super << :completed_at
24
- end
25
-
26
- def collection_serializer
27
- Spree.api.storefront_order_serializer
28
- end
29
-
30
- def resource_serializer
31
- Spree.api.storefront_order_serializer
32
- end
33
-
34
- def collection_finder
35
- Spree.api.storefront_completed_order_finder
36
- end
37
-
38
- def resource_finder
39
- Spree.api.storefront_completed_order_finder
40
- end
41
-
42
- def model_class
43
- Spree::Order
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,52 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Storefront
5
- class AccountController < ::Spree::Api::V2::ResourceController
6
- before_action :require_spree_current_user, except: :create
7
-
8
- def create
9
- result = create_service.call(user_params: user_create_params)
10
- render_result(result)
11
- end
12
-
13
- def update
14
- spree_authorize! :update, spree_current_user
15
- result = update_service.call(user: spree_current_user, user_params: user_update_params)
16
- render_result(result)
17
- end
18
-
19
- private
20
-
21
- def resource
22
- spree_current_user
23
- end
24
-
25
- def resource_serializer
26
- Spree.api.storefront_user_serializer
27
- end
28
-
29
- def model_class
30
- Spree.user_class
31
- end
32
-
33
- def create_service
34
- Spree.api.storefront_account_create_service
35
- end
36
-
37
- def update_service
38
- Spree.api.storefront_account_update_service
39
- end
40
-
41
- def user_create_params
42
- user_update_params.except(:bill_address_id, :ship_address_id)
43
- end
44
-
45
- def user_update_params
46
- params.require(:user).permit(permitted_user_attributes)
47
- end
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,246 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Storefront
5
- class CartController < ::Spree::Api::V2::BaseController
6
- include OrderConcern
7
- include CouponCodesHelper
8
- include Spree::Api::V2::Storefront::MetadataControllerConcern
9
-
10
- before_action :ensure_valid_metadata, only: %i[create add_item]
11
- before_action :ensure_order, except: %i[create associate]
12
- before_action :load_variant, only: :add_item
13
- before_action :require_spree_current_user, only: :associate
14
-
15
- def create
16
- spree_authorize! :create, Spree::Order
17
-
18
- create_cart_params = {
19
- user: spree_current_user,
20
- store: current_store,
21
- currency: current_currency,
22
- public_metadata: add_item_params[:public_metadata],
23
- private_metadata: add_item_params[:private_metadata],
24
- }
25
-
26
- order = spree_current_order if spree_current_order.present?
27
- order ||= create_service.call(create_cart_params).value
28
-
29
- render_serialized_payload(201) { serialize_resource(order) }
30
- end
31
-
32
- def add_item
33
- spree_authorize! :update, spree_current_order, order_token
34
- spree_authorize! :show, @variant
35
-
36
- result = add_item_service.call(
37
- order: spree_current_order,
38
- variant: @variant,
39
- quantity: add_item_params[:quantity],
40
- public_metadata: add_item_params[:public_metadata],
41
- private_metadata: add_item_params[:private_metadata],
42
- options: add_item_params[:options]
43
- )
44
-
45
- render_order(result)
46
- end
47
-
48
- def remove_line_item
49
- spree_authorize! :update, spree_current_order, order_token
50
-
51
- remove_line_item_service.call(
52
- order: spree_current_order,
53
- line_item: line_item
54
- )
55
-
56
- render_serialized_payload { serialized_current_order }
57
- end
58
-
59
- def empty
60
- spree_authorize! :update, spree_current_order, order_token
61
-
62
- result = empty_cart_service.call(order: spree_current_order)
63
-
64
- if result.success?
65
- render_serialized_payload { serialized_current_order }
66
- else
67
- render_error_payload(result.error)
68
- end
69
- end
70
-
71
- def destroy
72
- spree_authorize! :update, spree_current_order, order_token
73
-
74
- result = destroy_cart_service.call(order: spree_current_order)
75
-
76
- if result.success?
77
- head 204
78
- else
79
- render_error_payload(result.error)
80
- end
81
- end
82
-
83
- def set_quantity
84
- return render_error_item_quantity unless params[:quantity].to_i > 0
85
-
86
- spree_authorize! :update, spree_current_order, order_token
87
-
88
- result = set_item_quantity_service.call(order: spree_current_order, line_item: line_item, quantity: params[:quantity])
89
-
90
- render_order(result)
91
- end
92
-
93
- def show
94
- spree_authorize! :show, spree_current_order, order_token
95
-
96
- render_serialized_payload { serialized_current_order }
97
- end
98
-
99
- def apply_coupon_code
100
- spree_authorize! :update, spree_current_order, order_token
101
-
102
- spree_current_order.coupon_code = params[:coupon_code]
103
- result = coupon_handler.new(spree_current_order).apply
104
-
105
- if result.error.blank?
106
- spree_current_order.reload
107
- render_serialized_payload { serialized_current_order }
108
- else
109
- render_error_payload(result.error)
110
- end
111
- end
112
-
113
- def remove_coupon_code
114
- spree_authorize! :update, spree_current_order, order_token
115
-
116
- coupon_codes = select_coupon_codes
117
-
118
- return render_error_payload(I18n.t('spree.api.v2.cart.no_coupon_code')) if coupon_codes.empty?
119
-
120
- result_errors = coupon_codes.count > 1 ? select_errors(coupon_codes) : select_error(coupon_codes)
121
-
122
- if result_errors.blank?
123
- spree_current_order.reload
124
- render_serialized_payload { serialized_current_order }
125
- else
126
- render_error_payload(result_errors)
127
- end
128
- end
129
-
130
- def estimate_shipping_rates
131
- spree_authorize! :show, spree_current_order, order_token
132
-
133
- result = estimate_shipping_rates_service.call(order: spree_current_order, country_iso: params[:country_iso])
134
-
135
- if result.error.blank?
136
- render_serialized_payload { serialize_estimated_shipping_rates(result.value) }
137
- else
138
- render_error_payload(result.error)
139
- end
140
- end
141
-
142
- def associate
143
- guest_order_token = params[:guest_order_token]
144
- guest_order = ::Spree.api.storefront_current_order_finder.new.execute(
145
- store: current_store,
146
- user: nil,
147
- token: guest_order_token,
148
- currency: current_currency
149
- )
150
-
151
- spree_authorize! :update, guest_order, guest_order_token
152
-
153
- result = associate_service.call(guest_order: guest_order, user: spree_current_user)
154
-
155
- if result.success?
156
- render_serialized_payload { serialize_resource(guest_order) }
157
- else
158
- render_error_payload(result.error)
159
- end
160
- end
161
-
162
- def change_currency
163
- spree_authorize! :update, spree_current_order, order_token
164
-
165
- result = change_currency_service.call(order: spree_current_order, new_currency: params[:new_currency])
166
-
167
- render_order(result)
168
- end
169
-
170
- private
171
-
172
- def resource_serializer
173
- Spree.api.storefront_cart_serializer
174
- end
175
-
176
- def create_service
177
- Spree.api.storefront_cart_create_service
178
- end
179
-
180
- def add_item_service
181
- Spree.api.storefront_cart_add_item_service
182
- end
183
-
184
- def empty_cart_service
185
- Spree.api.storefront_cart_empty_service
186
- end
187
-
188
- def destroy_cart_service
189
- Spree.api.storefront_cart_destroy_service
190
- end
191
-
192
- def set_item_quantity_service
193
- Spree.api.storefront_cart_set_item_quantity_service
194
- end
195
-
196
- def remove_line_item_service
197
- Spree.api.storefront_cart_remove_line_item_service
198
- end
199
-
200
- def coupon_handler
201
- Spree.api.storefront_coupon_handler
202
- end
203
-
204
- def estimate_shipping_rates_service
205
- Spree.api.storefront_cart_estimate_shipping_rates_service
206
- end
207
-
208
- def associate_service
209
- Spree.api.storefront_cart_associate_service
210
- end
211
-
212
- def change_currency_service
213
- Spree.api.storefront_cart_change_currency_service
214
- end
215
-
216
- def line_item
217
- @line_item ||= spree_current_order.line_items.find(params[:line_item_id])
218
- end
219
-
220
- def load_variant
221
- @variant = current_store.variants.find(add_item_params[:variant_id])
222
- end
223
-
224
- def render_error_item_quantity
225
- render json: { error: I18n.t(:wrong_quantity, scope: 'spree.api.v2.cart') }, status: 422
226
- end
227
-
228
- def estimate_shipping_rates_serializer
229
- Spree.api.storefront_estimated_shipment_serializer
230
- end
231
-
232
- def serialize_estimated_shipping_rates(shipping_rates)
233
- estimate_shipping_rates_serializer.new(
234
- shipping_rates,
235
- params: serializer_params
236
- ).serializable_hash
237
- end
238
-
239
- def add_item_params
240
- params.permit(:quantity, :variant_id, public_metadata: {}, private_metadata: {}, options: {})
241
- end
242
- end
243
- end
244
- end
245
- end
246
- end
@@ -1,183 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Storefront
5
- class CheckoutController < ::Spree::Api::V2::BaseController
6
- include Spree::Api::V2::Storefront::OrderConcern
7
- before_action :ensure_order
8
-
9
- def next
10
- spree_authorize! :update, spree_current_order, order_token
11
-
12
- result = next_service.call(order: spree_current_order)
13
-
14
- render_order(result)
15
- end
16
-
17
- def advance
18
- spree_authorize! :update, spree_current_order, order_token
19
-
20
- check_if_quick_checkout
21
-
22
- result = advance_service.call(order: spree_current_order, state: params[:state], shipping_method_id: params[:shipping_method_id])
23
-
24
- render_order(result)
25
- end
26
-
27
- def complete
28
- spree_authorize! :update, spree_current_order, order_token
29
-
30
- result = complete_service.call(order: spree_current_order)
31
-
32
- render_order(result)
33
- end
34
-
35
- def update
36
- spree_authorize! :update, spree_current_order, order_token
37
-
38
- result = update_service.call(
39
- order: spree_current_order,
40
- params: params,
41
- # defined in https://github.com/spree/spree/blob/main/core/lib/spree/core/controller_helpers/strong_parameters.rb#L19
42
- permitted_attributes: permitted_checkout_attributes,
43
- request_env: request.headers.env
44
- )
45
-
46
- render_order(result)
47
- end
48
-
49
- def create_payment
50
- result = create_payment_service.call(order: spree_current_order, params: params)
51
-
52
- if result.success?
53
- render_serialized_payload(201) { serialize_resource(spree_current_order.reload) }
54
- else
55
- render_error_payload(result.error)
56
- end
57
- end
58
-
59
- def select_shipping_method
60
- result = select_shipping_method_service.call(order: spree_current_order, params: params)
61
-
62
- render_order(result)
63
- end
64
-
65
- def add_store_credit
66
- spree_authorize! :update, spree_current_order, order_token
67
-
68
- result = add_store_credit_service.call(
69
- order: spree_current_order,
70
- amount: params[:amount].try(:to_f)
71
- )
72
-
73
- render_order(result)
74
- end
75
-
76
- def remove_store_credit
77
- spree_authorize! :update, spree_current_order, order_token
78
-
79
- result = remove_store_credit_service.call(order: spree_current_order)
80
- render_order(result)
81
- end
82
-
83
- def shipping_rates
84
- result = shipping_rates_service.call(order: spree_current_order)
85
-
86
- if result.success?
87
- render_serialized_payload { serialize_shipping_rates(result.value) }
88
- else
89
- render_error_payload(result.error)
90
- end
91
- end
92
-
93
- def payment_methods
94
- render_serialized_payload { serialize_payment_methods(spree_current_order.collect_frontend_payment_methods) }
95
- end
96
-
97
- def validate_order_for_payment
98
- messages = []
99
-
100
- if spree_current_order.present?
101
- validated_order, messages = Spree::Cart::RemoveOutOfStockItems.call(order: spree_current_order).value
102
- messages << Spree.t(:cart_state_changed) if !validated_order.payment? && params[:skip_state].blank?
103
- end
104
-
105
- if messages.any?
106
- render_serialized_payload(422) do
107
- serialized_current_order.deep_merge({ meta: { messages: messages } })
108
- end
109
- else
110
- render_serialized_payload { serialized_current_order }
111
- end
112
- end
113
-
114
- private
115
-
116
- def resource_serializer
117
- Spree.api.storefront_cart_serializer
118
- end
119
-
120
- def next_service
121
- Spree.api.storefront_checkout_next_service
122
- end
123
-
124
- def advance_service
125
- Spree.api.storefront_checkout_advance_service
126
- end
127
-
128
- def add_store_credit_service
129
- Spree.api.storefront_checkout_add_store_credit_service
130
- end
131
-
132
- def remove_store_credit_service
133
- Spree.api.storefront_checkout_remove_store_credit_service
134
- end
135
-
136
- def complete_service
137
- Spree.api.storefront_checkout_complete_service
138
- end
139
-
140
- def update_service
141
- Spree.api.storefront_checkout_update_service
142
- end
143
-
144
- def payment_methods_serializer
145
- Spree.api.storefront_payment_method_serializer
146
- end
147
-
148
- def shipping_rates_service
149
- Spree.api.storefront_checkout_get_shipping_rates_service
150
- end
151
-
152
- def shipping_rates_serializer
153
- Spree.api.storefront_shipment_serializer
154
- end
155
-
156
- def create_payment_service
157
- Spree.api.storefront_payment_create_service
158
- end
159
-
160
- def select_shipping_method_service
161
- Spree.api.storefront_checkout_select_shipping_method_service
162
- end
163
-
164
- def serialize_payment_methods(payment_methods)
165
- payment_methods_serializer.new(payment_methods, params: serializer_params).serializable_hash
166
- end
167
-
168
- def serialize_shipping_rates(shipments)
169
- shipping_rates_serializer.new(
170
- shipments,
171
- params: serializer_params,
172
- include: [:shipping_rates, :stock_location, :line_items]
173
- ).serializable_hash
174
- end
175
-
176
- def check_if_quick_checkout
177
- spree_current_order.ship_address&.quick_checkout = params[:quick_checkout] if params[:quick_checkout]
178
- end
179
- end
180
- end
181
- end
182
- end
183
- end