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,147 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class ShipmentsController < ResourceController
6
- include NumberResource
7
-
8
- before_action :load_variant, only: %i[transfer_to_location transfer_to_shipment]
9
-
10
- SHIPMENT_STATES = %w[ready ship cancel resume pend]
11
-
12
- def create
13
- # FIXME: support saving metadata
14
- result = create_service.call(
15
- store: current_store,
16
- shipment_attributes: params.require(:shipment).permit(
17
- :order_id, :stock_location_id, :variant_id, :quantity
18
- )
19
- )
20
- render_result(result, 201)
21
- end
22
-
23
- def update
24
- result = update_service.call(shipment: resource, shipment_attributes: permitted_resource_params)
25
- render_result(result)
26
- end
27
-
28
- SHIPMENT_STATES.each do |state|
29
- define_method state do
30
- result = change_state_service.call(shipment: resource, state: state)
31
- render_result(result)
32
- end
33
- end
34
-
35
- def add_item
36
- result = add_item_service.call(
37
- shipment: resource,
38
- variant_id: params.dig(:shipment, :variant_id),
39
- quantity: params.dig(:shipment, :quantity)
40
- )
41
- render_result(result)
42
- end
43
-
44
- def remove_item
45
- result = remove_item_service.call(
46
- shipment: resource,
47
- variant_id: params.dig(:shipment, :variant_id),
48
- quantity: params.dig(:shipment, :quantity)
49
- )
50
-
51
- if result.success?
52
- if result.value == :shipment_deleted
53
- head 204
54
- else
55
- render_serialized_payload { serialize_resource(result.value) }
56
- end
57
- else
58
- render_error_payload(result.error)
59
- end
60
- end
61
-
62
- def transfer_to_location
63
- stock_location = Spree::StockLocation.find(params.dig(:shipment, :stock_location_id))
64
- quantity = params.dig(:shipment, :quantity)&.to_i || 1
65
-
66
- unless quantity > 0
67
- render_error_payload("#{I18n.t('spree.api.shipment_transfer_errors_occurred')} \n #{I18n.t('spree.api.negative_quantity')}")
68
- return
69
- end
70
-
71
- transfer = resource.transfer_to_location(@variant, quantity, stock_location)
72
- if transfer.valid? && transfer.run!
73
- render json: { message: I18n.t('spree.api.shipment_transfer_success') }, status: 201
74
- else
75
- render_error_payload(transfer.errors)
76
- end
77
- end
78
-
79
- def transfer_to_shipment
80
- target_shipment = Spree::Shipment.find_by!(number: params.dig(:shipment, :target_shipment_number))
81
- quantity = params.dig(:shipment, :quantity)&.to_i || 1
82
-
83
- error =
84
- if quantity < 0 && target_shipment == resource
85
- "#{I18n.t('spree.api.negative_quantity')}, \n#{I18n.t('spree.api.wrong_shipment_target')}"
86
- elsif target_shipment == resource
87
- I18n.t('spree.api.wrong_shipment_target')
88
- elsif quantity < 0
89
- I18n.t('spree.api.negative_quantity')
90
- end
91
-
92
- if error
93
- render_error_payload("#{I18n.t('spree.api.shipment_transfer_errors_occurred')} \n#{error}")
94
- else
95
- transfer = resource.transfer_to_shipment(@variant, quantity, target_shipment)
96
- if transfer.valid? && transfer.run!
97
- render json: { message: I18n.t('spree.api.shipment_transfer_success') }, status: 201
98
- else
99
- render_error_payload(transfer.errors)
100
- end
101
- end
102
- end
103
-
104
- private
105
-
106
- def model_class
107
- Spree::Shipment
108
- end
109
-
110
- def load_variant
111
- @variant = current_store.variants.find_by(id: params.dig(:shipment, :variant_id))
112
- end
113
-
114
- def spree_permitted_attributes
115
- Spree::Shipment.json_api_permitted_attributes + [
116
- :selected_shipping_rate_id
117
- ]
118
- end
119
-
120
- def create_service
121
- Spree.api.platform_shipment_create_service
122
- end
123
-
124
- def update_service
125
- Spree.api.platform_shipment_update_service
126
- end
127
-
128
- def change_state_service
129
- Spree.api.platform_shipment_change_state_service
130
- end
131
-
132
- def add_item_service
133
- Spree.api.platform_shipment_add_item_service
134
- end
135
-
136
- def remove_item_service
137
- Spree.api.platform_shipment_remove_item_service
138
- end
139
-
140
- def resource_serializer
141
- Spree.api.platform_shipment_serializer
142
- end
143
- end
144
- end
145
- end
146
- end
147
- end
@@ -1,19 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class ShippingCategoriesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::ShippingCategory
10
- end
11
-
12
- def resource_serializer
13
- Spree.api.platform_shipping_category_serializer
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,28 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class ShippingMethodsController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::ShippingMethod
10
- end
11
-
12
- def spree_permitted_attributes
13
- super + [
14
- {
15
- shipping_category_ids: [],
16
- calculator_attributes: {}
17
- }
18
- ]
19
- end
20
-
21
- def resource_serializer
22
- Spree.api.platform_shipping_method_serializer
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class StatesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::State
10
- end
11
-
12
- def scope_includes
13
- [:country]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_state_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class StockItemsController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::StockItem
10
- end
11
-
12
- def scope_includes
13
- [:variant, :stock_location]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_stock_item_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class StockLocationsController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::StockLocation
10
- end
11
-
12
- def scope_includes
13
- [:country]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_stock_location_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,19 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class StoreCreditCategoriesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::StoreCreditCategory
10
- end
11
-
12
- def resource_serializer
13
- Spree.api.platform_store_credit_category_serializer
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,19 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class StoreCreditTypesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::StoreCreditType
10
- end
11
-
12
- def resource_serializer
13
- Spree.api.platform_store_credit_type_serializer
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class StoreCreditsController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::StoreCredit
10
- end
11
-
12
- def scope_includes
13
- [:user, :created_by, :category, :credit_type]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_store_credit_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class TaxCategoriesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::TaxCategory
10
- end
11
-
12
- def scope_includes
13
- [:tax_rates]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_tax_category_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,27 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class TaxRatesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::TaxRate
10
- end
11
-
12
- def scope_includes
13
- [:zone, :tax_category]
14
- end
15
-
16
- def spree_permitted_attributes
17
- super + [calculator_attributes: Spree::Calculator.json_api_permitted_attributes]
18
- end
19
-
20
- def resource_serializer
21
- Spree.api.platform_tax_rate_serializer
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class TaxonomiesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::Taxonomy
10
- end
11
-
12
- def scope_includes
13
- [:taxons, :root]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_taxonomy_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,59 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class TaxonsController < ResourceController
6
- include ::Spree::Api::V2::Platform::NestedSetRepositionConcern
7
-
8
- private
9
-
10
- def successful_reposition_actions
11
- reload_taxon_and_set_new_permalink(resource)
12
- update_permalinks_on_child_taxons
13
-
14
- render_serialized_payload { serialize_resource(resource) }
15
- end
16
-
17
- def reload_taxon_and_set_new_permalink(taxon)
18
- taxon.reload
19
- taxon.set_permalink
20
- taxon.save!
21
- end
22
-
23
- def update_permalinks_on_child_taxons
24
- resource.descendants.each do |taxon|
25
- reload_taxon_and_set_new_permalink(taxon)
26
- end
27
- end
28
-
29
- def model_class
30
- Spree::Taxon
31
- end
32
-
33
- def scope_includes
34
- node_includes = %i[icon parent taxonomy]
35
-
36
- {
37
- parent: node_includes,
38
- children: node_includes,
39
- taxonomy: [root: node_includes],
40
- icon: [attachment_attachment: :blob]
41
- }
42
- end
43
-
44
- def serializer_params
45
- super.merge(include_products: action_name == 'show')
46
- end
47
-
48
- def spree_permitted_attributes
49
- super + [:new_parent_id, :new_position_idx]
50
- end
51
-
52
- def resource_serializer
53
- Spree.api.platform_taxon_serializer
54
- end
55
- end
56
- end
57
- end
58
- end
59
- end
@@ -1,37 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class UsersController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree.user_class
10
- end
11
-
12
- def resource_serializer
13
- Spree.api.platform_user_serializer
14
- end
15
-
16
- def scope_includes
17
- [:ship_address, :bill_address]
18
- end
19
-
20
- # we need to define this here as developers can configure their own `user_class`
21
- def model_param_name
22
- 'user'
23
- end
24
-
25
- def spree_permitted_attributes
26
- super + [:password, :password_confirmation]
27
- end
28
-
29
- # we need to override this method to avoid trying to create user role when creating a user
30
- def ensure_current_store(_resource)
31
- # do nothing
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class VariantsController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::Variant
10
- end
11
-
12
- def spree_permitted_attributes
13
- super + [:option_value_ids, :price, :currency]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_variant_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class WishedItemsController < ResourceController
6
- private
7
-
8
- def scope_includes
9
- [:variant]
10
- end
11
-
12
- def model_class
13
- Spree::WishedItem
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_wished_item_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class WishlistsController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::Wishlist
10
- end
11
-
12
- def scope_includes
13
- [:wished_items]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_wishlist_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class ZonesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::Zone
10
- end
11
-
12
- def scope_includes
13
- [:zone_members]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_zone_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,79 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- class ResourceController < ::Spree::Api::V2::BaseController
5
- include Spree::Api::V2::CollectionOptionsHelpers
6
- include Spree::Api::V2::Caching
7
-
8
- def index
9
- render_serialized_payload do
10
- Rails.cache.fetch(collection_cache_key(paginated_collection), collection_cache_opts) do
11
- serialize_collection(paginated_collection)
12
- end
13
- end
14
- end
15
-
16
- def show
17
- render_serialized_payload { serialize_resource(resource) }
18
- end
19
-
20
- protected
21
-
22
- def sorted_collection
23
- @sorted_collection ||= collection_sorter.new(collection, params, allowed_sort_attributes).call
24
- end
25
-
26
- def allowed_sort_attributes
27
- default_sort_attributes
28
- end
29
-
30
- def default_sort_attributes
31
- [:id, :name, :slug, :number, :position, :updated_at, :created_at, :deleted_at]
32
- end
33
-
34
- def scope(skip_cancancan: false)
35
- base_scope = model_class.for_store(current_store)
36
- base_scope = base_scope.accessible_by(current_ability, :show) unless skip_cancancan
37
- base_scope = base_scope.includes(scope_includes) if scope_includes.any? && action_name == 'index'
38
- model_class.include?(TranslatableResource) ? base_scope.i18n : base_scope
39
- end
40
-
41
- def scope_includes
42
- []
43
- end
44
-
45
- def resource
46
- @resource ||= if defined?(resource_finder)
47
- resource_finder.new(scope: scope, params: finder_params).execute
48
- else
49
- scope.find(params[:id])
50
- end
51
- end
52
-
53
- def collection
54
- @collection ||= begin
55
- result = if defined?(collection_finder)
56
- collection_finder.new(scope: scope, params: finder_params).execute
57
- else
58
- scope
59
- end
60
- result.preload_associations_lazily
61
- end
62
- end
63
-
64
- def finder_params
65
- params.merge(
66
- store: current_store,
67
- locale: current_locale,
68
- currency: current_currency,
69
- user: spree_current_user
70
- )
71
- end
72
-
73
- def collection_sorter
74
- Spree.api.storefront_collection_sorter
75
- end
76
- end
77
- end
78
- end
79
- end