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,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class GiftCardsController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::GiftCard
10
- end
11
-
12
- def permitted_resource_params
13
- params.require(:gift_card).permit(permitted_gift_card_attributes)
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_gift_card_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,63 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class LineItemsController < ResourceController
6
- def create
7
- order = current_store.orders.find(permitted_resource_params[:order_id])
8
-
9
- result = create_service.call(order: order, line_item_attributes: permitted_resource_params)
10
-
11
- if result.success?
12
- render_serialized_payload(201) { serialize_resource(result.value) }
13
- else
14
- render_error_payload(result.error)
15
- end
16
- end
17
-
18
- def update
19
- result = update_service.call(line_item: resource, line_item_attributes: permitted_resource_params)
20
-
21
- if result.success?
22
- render_serialized_payload { serialize_resource(result.value) }
23
- else
24
- render_error_payload(resource.errors)
25
- end
26
- end
27
-
28
- def destroy
29
- result = destroy_service.call(line_item: resource)
30
-
31
- if result.success?
32
- head 204
33
- else
34
- render_error_payload(result.error)
35
- end
36
- end
37
-
38
- private
39
-
40
- def model_class
41
- Spree::LineItem
42
- end
43
-
44
- def create_service
45
- Spree.api.platform_line_item_create_service
46
- end
47
-
48
- def update_service
49
- Spree.api.platform_line_item_update_service
50
- end
51
-
52
- def destroy_service
53
- Spree.api.platform_line_item_destroy_service
54
- end
55
-
56
- def resource_serializer
57
- Spree.api.platform_line_item_serializer
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,19 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class OptionTypesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::OptionType
10
- end
11
-
12
- def resource_serializer
13
- Spree.api.platform_option_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 OptionValuesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::OptionValue
10
- end
11
-
12
- def scope_includes
13
- [:option_type]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_option_value_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,167 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class OrdersController < ResourceController
6
- include CouponCodesHelper
7
- include NumberResource
8
-
9
- def create
10
- resource = current_store.orders.new(permitted_resource_params)
11
-
12
- if resource.save
13
- render_serialized_payload(201) { serialize_resource(resource) }
14
- else
15
- render_error_payload(resource.errors)
16
- end
17
- end
18
-
19
- def update
20
- result = update_service.call(
21
- order: resource,
22
- params: params,
23
- permitted_attributes: spree_permitted_attributes,
24
- request_env: request.headers.env
25
- )
26
-
27
- render_result(result)
28
- end
29
-
30
- def next
31
- result = next_service.call(order: resource)
32
-
33
- render_result(result)
34
- end
35
-
36
- def advance
37
- result = advance_service.call(order: resource)
38
-
39
- render_result(result)
40
- end
41
-
42
- def complete
43
- result = complete_service.call(order: resource)
44
-
45
- render_result(result)
46
- end
47
-
48
- def empty
49
- result = empty_service.call(order: resource)
50
-
51
- render_result(result)
52
- end
53
-
54
- def cancel
55
- result = cancel_service.call(order: resource, canceler: spree_current_user)
56
-
57
- render_result(result)
58
- end
59
-
60
- def approve
61
- result = approve_service.call(order: resource, approver: spree_current_user)
62
-
63
- render_result(result)
64
- end
65
-
66
- def destroy
67
- result = destroy_service.call(order: resource)
68
-
69
- if result.success?
70
- head 204
71
- else
72
- render_error_payload(result.error)
73
- end
74
- end
75
-
76
- def apply_coupon_code
77
- resource.coupon_code = params[:coupon_code]
78
- result = coupon_handler.new(resource).apply
79
-
80
- if result.error.blank?
81
- render_serialized_payload { serialize_resource(resource.reload) }
82
- else
83
- render_error_payload(result.error)
84
- end
85
- end
86
-
87
- def use_store_credit
88
- result = use_store_credit_service.call(
89
- order: resource,
90
- amount: params[:amount].try(:to_f)
91
- )
92
-
93
- render_result(result)
94
- end
95
-
96
- private
97
-
98
- def model_class
99
- Spree::Order
100
- end
101
-
102
- def allowed_sort_attributes
103
- super.push(:available_on, :make_active_at, :total, :payment_total, :item_total, :shipment_total,
104
- :adjustment_total, :promo_total, :included_tax_total, :additional_tax_total,
105
- :item_count, :tax_total, :completed_at)
106
- end
107
-
108
- def update_service
109
- Spree.api.platform_order_update_service
110
- end
111
-
112
- def next_service
113
- Spree.api.platform_order_next_service
114
- end
115
-
116
- def advance_service
117
- Spree.api.platform_order_advance_service
118
- end
119
-
120
- def use_store_credit_service
121
- Spree.api.platform_order_use_store_credit_service
122
- end
123
-
124
- def complete_service
125
- Spree.api.platform_order_complete_service
126
- end
127
-
128
- def empty_service
129
- Spree.api.platform_order_empty_service
130
- end
131
-
132
- def destroy_service
133
- Spree.api.platform_order_destroy_service
134
- end
135
-
136
- def approve_service
137
- Spree.api.platform_order_approve_service
138
- end
139
-
140
- def cancel_service
141
- Spree.api.platform_order_cancel_service
142
- end
143
-
144
- def coupon_handler
145
- Spree.api.platform_coupon_handler
146
- end
147
-
148
- def spree_permitted_attributes
149
- super + [
150
- bill_address_attributes: Spree::Address.json_api_permitted_attributes,
151
- ship_address_attributes: Spree::Address.json_api_permitted_attributes,
152
- line_items_attributes: Spree::LineItem.json_api_permitted_attributes,
153
- payments_attributes: Spree::Payment.json_api_permitted_attributes + [
154
- source_attributes: Spree::CreditCard.json_api_permitted_attributes
155
- ],
156
- shipments_attributes: Spree::Shipment.json_api_permitted_attributes
157
- ]
158
- end
159
-
160
- def resource_serializer
161
- Spree.api.platform_order_serializer
162
- end
163
- end
164
- end
165
- end
166
- end
167
- end
@@ -1,31 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class PaymentMethodsController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::PaymentMethod
10
- end
11
-
12
- def spree_permitted_attributes
13
- preferred_attributes = []
14
-
15
- if action_name == 'update'
16
- resource.defined_preferences.each do |preference|
17
- preferred_attributes << "preferred_#{preference}".to_sym
18
- end
19
- end
20
-
21
- super + preferred_attributes
22
- end
23
-
24
- def resource_serializer
25
- Spree.api.platform_payment_method_serializer
26
- end
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,21 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class PaymentsController < ResourceController
6
- include NumberResource
7
-
8
- private
9
-
10
- def model_class
11
- Spree::Payment
12
- end
13
-
14
- def resource_serializer
15
- Spree.api.platform_payment_serializer
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,41 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class ProductsController < ResourceController
6
- include ::Spree::Api::V2::ProductListIncludes
7
-
8
- private
9
-
10
- def model_class
11
- Spree::Product
12
- end
13
-
14
- def scope_includes
15
- product_list_includes
16
- end
17
-
18
- def spree_permitted_attributes
19
- super.push(:price)
20
- end
21
-
22
- def allowed_sort_attributes
23
- super.push(:available_on, :make_active_at)
24
- end
25
-
26
- def sorted_collection
27
- collection_sorter.new(collection, current_currency, params, allowed_sort_attributes).call
28
- end
29
-
30
- def collection_sorter
31
- Spree.api.platform_products_sorter
32
- end
33
-
34
- def resource_serializer
35
- Spree.api.platform_product_serializer
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,34 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class PromotionActionsController < ResourceController
6
- include ::Spree::Api::V2::Platform::PromotionCalculatorParams
7
-
8
- private
9
-
10
- def model_class
11
- Spree::PromotionAction
12
- end
13
-
14
- def scope_includes
15
- [:promotion]
16
- end
17
-
18
- def spree_permitted_attributes
19
- conditional_params = action_name == 'update' ? [:id] : []
20
-
21
- super + [{
22
- promotion_action_line_items_attributes: Spree::PromotionActionLineItem.json_api_permitted_attributes.concat(conditional_params),
23
- calculator_attributes: Spree::Calculator.json_api_permitted_attributes.concat(conditional_params, calculator_params)
24
- }]
25
- end
26
-
27
- def resource_serializer
28
- Spree.api.platform_promotion_action_serializer
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class PromotionCategoriesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::PromotionCategory
10
- end
11
-
12
- def scope_includes
13
- [:promotions]
14
- end
15
-
16
- def resource_serializer
17
- Spree.api.platform_promotion_category_serializer
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,29 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class PromotionRulesController < ResourceController
6
- include ::Spree::Api::V2::Platform::PromotionRuleParams
7
-
8
- private
9
-
10
- def model_class
11
- Spree::PromotionRule
12
- end
13
-
14
- def scope_includes
15
- [:promotion]
16
- end
17
-
18
- def spree_permitted_attributes
19
- super + rule_params
20
- end
21
-
22
- def resource_serializer
23
- Spree.api.platform_promotion_rule_serializer
24
- end
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,35 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class PromotionsController < ResourceController
6
- include ::Spree::Api::V2::Platform::PromotionRuleParams
7
- include ::Spree::Api::V2::Platform::PromotionCalculatorParams
8
-
9
- private
10
-
11
- def model_class
12
- Spree::Promotion
13
- end
14
-
15
- def scope_includes
16
- [:promotion_category, :promotion_rules, :promotion_actions]
17
- end
18
-
19
- def spree_permitted_attributes
20
- conditional_params = action_name == 'update' ? [:id] : []
21
-
22
- super + [{ promotion_actions_attributes: Spree::PromotionAction.json_api_permitted_attributes.concat(conditional_params) + [{
23
- promotion_action_line_items_attributes: Spree::PromotionActionLineItem.json_api_permitted_attributes.concat(conditional_params),
24
- calculator_attributes: Spree::Calculator.json_api_permitted_attributes.concat(conditional_params, calculator_params)
25
- }], promotion_rules_attributes: Spree::PromotionRule.json_api_permitted_attributes.concat(conditional_params, rule_params) }]
26
- end
27
-
28
- def resource_serializer
29
- Spree.api.platform_promotion_serializer
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,154 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class ResourceController < ::Spree::Api::V2::ResourceController
6
- # doorkeeper scopes usage: https://github.com/doorkeeper-gem/doorkeeper/wiki/Using-Scopes
7
- before_action :validate_token_client
8
- before_action -> { doorkeeper_authorize! :read, :admin }
9
- before_action -> { doorkeeper_authorize! :write, :admin }, if: :write_request?
10
-
11
- # optional authorization if using a user token instead of app token
12
- before_action :authorize_spree_user
13
-
14
- # index and show actions are defined in Spree::Api::V2::ResourceController
15
-
16
- def create
17
- resource = model_class.new(permitted_resource_params)
18
- ensure_current_store(resource)
19
-
20
- if resource.save
21
- render_serialized_payload(201) { serialize_resource(resource) }
22
- else
23
- render_error_payload(resource.errors)
24
- end
25
- end
26
-
27
- def update
28
- resource.assign_attributes(permitted_resource_params)
29
- ensure_current_store(resource)
30
-
31
- if resource.save
32
- render_serialized_payload { serialize_resource(resource) }
33
- else
34
- render_error_payload(resource.errors)
35
- end
36
- end
37
-
38
- def destroy
39
- if resource.destroy
40
- head 204
41
- else
42
- render_error_payload(resource.errors)
43
- end
44
- end
45
-
46
- protected
47
-
48
- def resource_serializer
49
- serializer_base_name = model_class.to_s.sub('Spree::', '')
50
- "Spree::Api::V2::Platform::#{serializer_base_name}Serializer".constantize
51
- end
52
-
53
- def collection_serializer
54
- resource_serializer
55
- end
56
-
57
- # overwriting to utilize ransack gem for filtering
58
- # https://github.com/activerecord-hackery/ransack#search-matchers
59
- def collection
60
- @collection ||= scope.ransack(params[:filter]).result
61
- end
62
-
63
- # overwriting to skip cancancan check if API is consumed by an application
64
- def scope
65
- return super if spree_current_user.present?
66
-
67
- super(skip_cancancan: true)
68
- end
69
-
70
- # We're overwriting this method because the original one calls `dookreeper_authorize`
71
- # which breaks our application authorizations defined on top of this controller
72
- def spree_current_user
73
- return nil unless doorkeeper_token
74
- return nil if doorkeeper_token.resource_owner_id.nil?
75
- return @spree_current_user if @spree_current_user
76
-
77
- @spree_current_user ||= doorkeeper_token.resource_owner
78
- end
79
-
80
- def access_denied(exception)
81
- access_denied_401(exception)
82
- end
83
-
84
- def validate_token_client
85
- return if doorkeeper_token.nil?
86
-
87
- raise Doorkeeper::Errors::DoorkeeperError if doorkeeper_token.application.nil?
88
- end
89
-
90
- # if using a user oAuth token we need to check CanCanCan abilities
91
- # defined in https://github.com/spree/spree/blob/main/core/app/models/spree/ability.rb
92
- def authorize_spree_user
93
- return if spree_current_user.nil?
94
-
95
- case action_name
96
- when 'create'
97
- spree_authorize! :create, model_class
98
- when 'destroy'
99
- spree_authorize! :destroy, resource
100
- when 'index'
101
- spree_authorize! :read, model_class
102
- when 'show'
103
- spree_authorize! :read, resource
104
- else
105
- spree_authorize! :update, resource
106
- end
107
- end
108
-
109
- def model_param_name
110
- model_class.to_s.demodulize.underscore
111
- end
112
-
113
- def spree_permitted_attributes
114
- store_ids = if model_class.method_defined?(:stores)
115
- [{ store_ids: [] }]
116
- else
117
- []
118
- end
119
-
120
- model_class.json_api_permitted_attributes + store_ids + metadata_params + metafields_params
121
- end
122
-
123
- def metadata_params
124
- if model_class.include?(Metadata)
125
- [{ public_metadata: {}, private_metadata: {} }]
126
- else
127
- []
128
- end
129
- end
130
-
131
- def metafields_params
132
- if Spree::MetafieldDefinition.available_resources.map(&:name).include?(model_class.name) && model_class.method_defined?(:metafields)
133
- [{ metafields_attributes: Spree::PermittedAttributes.metafield_attributes }]
134
- else
135
- []
136
- end
137
- end
138
-
139
- def permitted_resource_params
140
- params.require(model_param_name).permit(spree_permitted_attributes)
141
- end
142
-
143
- def allowed_sort_attributes
144
- (super << spree_permitted_attributes).uniq.compact
145
- end
146
-
147
- def write_request?
148
- %w[put patch post delete].include?(request.request_method.downcase)
149
- end
150
- end
151
- end
152
- end
153
- end
154
- end
@@ -1,19 +0,0 @@
1
- module Spree
2
- module Api
3
- module V2
4
- module Platform
5
- class RolesController < ResourceController
6
- private
7
-
8
- def model_class
9
- Spree::Role
10
- end
11
-
12
- def resource_serializer
13
- Spree.api.platform_role_serializer
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end