spree_api 4.3.0 → 4.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (351) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/spree/api/v2/caching.rb +7 -3
  3. data/app/controllers/concerns/spree/api/v2/coupon_codes_helper.rb +29 -0
  4. data/app/controllers/concerns/spree/api/v2/number_resource.rb +11 -0
  5. data/app/controllers/concerns/spree/api/v2/platform/nested_set_reposition_concern.rb +37 -0
  6. data/app/controllers/concerns/spree/api/v2/platform/promotion_calculator_params.rb +17 -0
  7. data/app/controllers/concerns/spree/api/v2/platform/promotion_rule_params.rb +16 -0
  8. data/app/controllers/concerns/spree/api/v2/product_list_includes.rb +10 -8
  9. data/app/controllers/concerns/spree/api/v2/storefront/metadata_controller_concern.rb +18 -0
  10. data/app/controllers/spree/api/v2/base_controller.rb +7 -5
  11. data/app/controllers/spree/api/v2/platform/adjustments_controller.rb +19 -0
  12. data/app/controllers/spree/api/v2/platform/classifications_controller.rb +1 -22
  13. data/app/controllers/spree/api/v2/platform/cms_pages_controller.rb +4 -0
  14. data/app/controllers/spree/api/v2/platform/cms_sections_controller.rb +13 -18
  15. data/app/controllers/spree/api/v2/platform/digital_links_controller.rb +25 -0
  16. data/app/controllers/spree/api/v2/platform/digitals_controller.rb +19 -0
  17. data/app/controllers/spree/api/v2/platform/line_items_controller.rb +59 -0
  18. data/app/controllers/spree/api/v2/platform/menu_items_controller.rb +5 -19
  19. data/app/controllers/spree/api/v2/platform/menus_controller.rb +0 -4
  20. data/app/controllers/spree/api/v2/platform/orders_controller.rb +163 -0
  21. data/app/controllers/spree/api/v2/platform/payment_methods_controller.rb +27 -0
  22. data/app/controllers/spree/api/v2/platform/payments_controller.rb +17 -0
  23. data/app/controllers/spree/api/v2/platform/products_controller.rb +5 -1
  24. data/app/controllers/spree/api/v2/platform/promotion_actions_controller.rb +30 -0
  25. data/app/controllers/spree/api/v2/platform/promotion_categories_controller.rb +19 -0
  26. data/app/controllers/spree/api/v2/platform/promotion_rules_controller.rb +25 -0
  27. data/app/controllers/spree/api/v2/platform/promotions_controller.rb +31 -0
  28. data/app/controllers/spree/api/v2/platform/resource_controller.rb +47 -16
  29. data/app/controllers/spree/api/v2/platform/roles_controller.rb +15 -0
  30. data/app/controllers/spree/api/v2/platform/shipments_controller.rb +143 -0
  31. data/app/controllers/spree/api/v2/platform/shipping_categories_controller.rb +15 -0
  32. data/app/controllers/spree/api/v2/platform/shipping_methods_controller.rb +24 -0
  33. data/app/controllers/spree/api/v2/platform/states_controller.rb +19 -0
  34. data/app/controllers/spree/api/v2/platform/stock_items_controller.rb +19 -0
  35. data/app/controllers/spree/api/v2/platform/stock_locations_controller.rb +19 -0
  36. data/app/controllers/spree/api/v2/platform/store_credit_categories_controller.rb +15 -0
  37. data/app/controllers/spree/api/v2/platform/store_credit_types_controller.rb +15 -0
  38. data/app/controllers/spree/api/v2/platform/store_credits_controller.rb +19 -0
  39. data/app/controllers/spree/api/v2/platform/tax_categories_controller.rb +19 -0
  40. data/app/controllers/spree/api/v2/platform/tax_rates_controller.rb +23 -0
  41. data/app/controllers/spree/api/v2/platform/taxonomies_controller.rb +19 -0
  42. data/app/controllers/spree/api/v2/platform/taxons_controller.rb +25 -0
  43. data/app/controllers/spree/api/v2/platform/users_controller.rb +4 -0
  44. data/app/controllers/spree/api/v2/platform/variants_controller.rb +19 -0
  45. data/app/controllers/spree/api/v2/platform/webhooks/events_controller.rb +21 -0
  46. data/app/controllers/spree/api/v2/platform/webhooks/subscribers_controller.rb +21 -0
  47. data/app/controllers/spree/api/v2/platform/wished_items_controller.rb +19 -0
  48. data/app/controllers/spree/api/v2/platform/wishlists_controller.rb +19 -0
  49. data/app/controllers/spree/api/v2/platform/zones_controller.rb +19 -0
  50. data/app/controllers/spree/api/v2/resource_controller.rb +3 -3
  51. data/app/controllers/spree/api/v2/storefront/account/addresses_controller.rb +2 -2
  52. data/app/controllers/spree/api/v2/storefront/account/credit_cards_controller.rb +4 -1
  53. data/app/controllers/spree/api/v2/storefront/cart_controller.rb +18 -28
  54. data/app/controllers/spree/api/v2/storefront/checkout_controller.rb +25 -1
  55. data/app/controllers/spree/api/v2/storefront/digitals_controller.rb +58 -0
  56. data/app/controllers/spree/api/v2/storefront/stores_controller.rb +4 -0
  57. data/app/controllers/spree/api/v2/storefront/wishlists_controller.rb +171 -0
  58. data/app/helpers/spree/api/v2/collection_options_helpers.rb +1 -1
  59. data/app/helpers/spree/api/v2/store_media_serializer_images_concern.rb +35 -0
  60. data/app/jobs/spree/webhooks/subscribers/make_request_job.rb +17 -0
  61. data/app/models/concerns/spree/webhooks/has_webhooks.rb +84 -0
  62. data/app/models/spree/api/webhooks/order_decorator.rb +43 -0
  63. data/app/models/spree/api/webhooks/payment_decorator.rb +26 -0
  64. data/app/models/spree/api/webhooks/product_decorator.rb +46 -0
  65. data/app/models/spree/api/webhooks/shipment_decorator.rb +21 -0
  66. data/app/models/spree/api/webhooks/stock_item_decorator.rb +43 -0
  67. data/app/models/spree/api/webhooks/stock_movement_decorator.rb +52 -0
  68. data/app/models/spree/api/webhooks/variant_decorator.rb +26 -0
  69. data/app/models/spree/oauth_access_grant.rb +7 -0
  70. data/app/models/spree/oauth_access_token.rb +7 -0
  71. data/app/models/spree/oauth_application.rb +15 -0
  72. data/app/models/spree/webhooks/base.rb +11 -0
  73. data/app/models/spree/webhooks/event.rb +12 -0
  74. data/app/models/spree/webhooks/subscriber.rb +61 -0
  75. data/app/serializers/concerns/spree/api/v2/resource_serializer_concern.rb +19 -1
  76. data/app/serializers/spree/api/v2/base_serializer.rb +11 -4
  77. data/app/serializers/spree/api/v2/platform/address_serializer.rb +1 -1
  78. data/app/serializers/spree/api/v2/platform/adjustment_serializer.rb +20 -0
  79. data/app/serializers/spree/api/v2/platform/asset_serializer.rb +13 -0
  80. data/app/serializers/spree/api/v2/platform/calculator_serializer.rb +17 -0
  81. data/app/serializers/spree/api/v2/platform/classification_serializer.rb +1 -1
  82. data/app/serializers/spree/api/v2/platform/cms_page_serializer.rb +1 -1
  83. data/app/serializers/spree/api/v2/platform/cms_section_image_one_serializer.rb +9 -0
  84. data/app/serializers/spree/api/v2/platform/cms_section_image_three_serializer.rb +9 -0
  85. data/app/serializers/spree/api/v2/platform/cms_section_image_two_serializer.rb +9 -0
  86. data/app/serializers/spree/api/v2/platform/cms_section_serializer.rb +8 -1
  87. data/app/serializers/spree/api/v2/platform/country_serializer.rb +1 -1
  88. data/app/serializers/spree/api/v2/platform/credit_card_serializer.rb +14 -0
  89. data/app/serializers/spree/api/v2/platform/customer_return_serializer.rb +17 -0
  90. data/app/serializers/spree/api/v2/platform/digital_link_serializer.rb +16 -0
  91. data/app/serializers/spree/api/v2/platform/digital_serializer.rb +30 -0
  92. data/app/serializers/spree/api/v2/platform/feature_page_serializer.rb +11 -0
  93. data/app/serializers/spree/api/v2/platform/hero_image_serializer.rb +10 -0
  94. data/app/serializers/spree/api/v2/platform/homepage_serializer.rb +11 -0
  95. data/app/serializers/spree/api/v2/platform/image_gallery_serializer.rb +10 -0
  96. data/app/serializers/spree/api/v2/platform/inventory_unit_serializer.rb +19 -0
  97. data/app/serializers/spree/api/v2/platform/line_item_serializer.rb +19 -0
  98. data/app/serializers/spree/api/v2/platform/log_entry_serializer.rb +13 -0
  99. data/app/serializers/spree/api/v2/platform/menu_item_serializer.rb +1 -1
  100. data/app/serializers/spree/api/v2/platform/menu_serializer.rb +1 -1
  101. data/app/serializers/spree/api/v2/platform/option_type_serializer.rb +1 -1
  102. data/app/serializers/spree/api/v2/platform/option_value_serializer.rb +1 -1
  103. data/app/serializers/spree/api/v2/platform/order_promotion_serializer.rb +14 -0
  104. data/app/serializers/spree/api/v2/platform/order_serializer.rb +31 -0
  105. data/app/serializers/spree/api/v2/platform/payment_capture_event_serializer.rb +13 -0
  106. data/app/serializers/spree/api/v2/platform/payment_method_serializer.rb +18 -0
  107. data/app/serializers/spree/api/v2/platform/payment_serializer.rb +21 -0
  108. data/app/serializers/spree/api/v2/platform/price_serializer.rb +19 -0
  109. data/app/serializers/spree/api/v2/platform/product_property_serializer.rb +1 -1
  110. data/app/serializers/spree/api/v2/platform/product_serializer.rb +7 -3
  111. data/app/serializers/spree/api/v2/platform/promotion_action_line_item_serializer.rb +14 -0
  112. data/app/serializers/spree/api/v2/platform/promotion_action_serializer.rb +19 -0
  113. data/app/serializers/spree/api/v2/platform/promotion_category_serializer.rb +13 -0
  114. data/app/serializers/spree/api/v2/platform/promotion_rule_serializer.rb +21 -0
  115. data/app/serializers/spree/api/v2/platform/promotion_serializer.rb +17 -0
  116. data/app/serializers/spree/api/v2/platform/property_serializer.rb +11 -0
  117. data/app/serializers/spree/api/v2/platform/prototype_serializer.rb +15 -0
  118. data/app/serializers/spree/api/v2/platform/refund_reason_serializer.rb +11 -0
  119. data/app/serializers/spree/api/v2/platform/refund_serializer.rb +16 -0
  120. data/app/serializers/spree/api/v2/platform/reimbursement_credit_serializer.rb +10 -0
  121. data/app/serializers/spree/api/v2/platform/reimbursement_serializer.rb +18 -0
  122. data/app/serializers/spree/api/v2/platform/reimbursement_type_serializer.rb +11 -0
  123. data/app/serializers/spree/api/v2/platform/return_authorization_reason_serializer.rb +11 -0
  124. data/app/serializers/spree/api/v2/platform/return_authorization_serializer.rb +17 -0
  125. data/app/serializers/spree/api/v2/platform/return_item_serializer.rb +16 -0
  126. data/app/serializers/spree/api/v2/platform/role_serializer.rb +11 -0
  127. data/app/serializers/spree/api/v2/platform/shipment_serializer.rb +22 -0
  128. data/app/serializers/spree/api/v2/platform/shipping_category_serializer.rb +11 -0
  129. data/app/serializers/spree/api/v2/platform/shipping_method_serializer.rb +16 -0
  130. data/app/serializers/spree/api/v2/platform/shipping_rate_serializer.rb +15 -0
  131. data/app/serializers/spree/api/v2/platform/side_by_side_image_serializer.rb +10 -0
  132. data/app/serializers/spree/api/v2/platform/standard_page_serializer.rb +11 -0
  133. data/app/serializers/spree/api/v2/platform/state_change_serializer.rb +13 -0
  134. data/app/serializers/spree/api/v2/platform/state_serializer.rb +1 -1
  135. data/app/serializers/spree/api/v2/platform/stock_item_serializer.rb +1 -3
  136. data/app/serializers/spree/api/v2/platform/stock_location_serializer.rb +2 -4
  137. data/app/serializers/spree/api/v2/platform/stock_movement_serializer.rb +11 -0
  138. data/app/serializers/spree/api/v2/platform/stock_transfer_serializer.rb +15 -0
  139. data/app/serializers/spree/api/v2/platform/store_credit_category_serializer.rb +12 -0
  140. data/app/serializers/spree/api/v2/platform/store_credit_event_serializer.rb +14 -0
  141. data/app/serializers/spree/api/v2/platform/store_credit_serializer.rb +18 -0
  142. data/app/serializers/spree/api/v2/platform/store_credit_type_serializer.rb +12 -0
  143. data/app/serializers/spree/api/v2/platform/store_serializer.rb +2 -1
  144. data/app/serializers/spree/api/v2/platform/tax_category_serializer.rb +2 -2
  145. data/app/serializers/spree/api/v2/platform/tax_rate_serializer.rb +14 -0
  146. data/app/serializers/spree/api/v2/platform/taxon_serializer.rb +1 -1
  147. data/app/serializers/spree/api/v2/platform/taxonomy_serializer.rb +1 -1
  148. data/app/serializers/spree/api/v2/platform/user_serializer.rb +1 -1
  149. data/app/serializers/spree/api/v2/platform/variant_serializer.rb +3 -2
  150. data/app/serializers/spree/api/v2/platform/webhooks/event_serializer.rb +15 -0
  151. data/app/serializers/spree/api/v2/platform/webhooks/subscriber_serializer.rb +13 -0
  152. data/app/serializers/spree/api/v2/platform/wished_item_serializer.rb +29 -0
  153. data/app/serializers/spree/api/v2/platform/wishlist_serializer.rb +19 -0
  154. data/app/serializers/spree/api/v2/platform/zone_member_serializer.rb +13 -0
  155. data/app/serializers/spree/api/v2/platform/zone_serializer.rb +13 -0
  156. data/app/serializers/spree/v2/storefront/address_serializer.rb +1 -1
  157. data/app/serializers/spree/v2/storefront/cart_serializer.rb +1 -1
  158. data/app/serializers/spree/v2/storefront/cms_section_serializer.rb +8 -4
  159. data/app/serializers/spree/v2/storefront/credit_card_serializer.rb +1 -1
  160. data/app/serializers/spree/v2/storefront/digital_link_serializer.rb +11 -0
  161. data/app/serializers/spree/v2/storefront/estimated_shipping_rate_serializer.rb +2 -2
  162. data/app/serializers/spree/v2/storefront/line_item_serializer.rb +2 -1
  163. data/app/serializers/spree/v2/storefront/option_type_serializer.rb +1 -1
  164. data/app/serializers/spree/v2/storefront/option_value_serializer.rb +1 -1
  165. data/app/serializers/spree/v2/storefront/order_serializer.rb +9 -0
  166. data/app/serializers/spree/v2/storefront/payment_method_serializer.rb +1 -1
  167. data/app/serializers/spree/v2/storefront/payment_serializer.rb +1 -1
  168. data/app/serializers/spree/v2/storefront/product_property_serializer.rb +1 -1
  169. data/app/serializers/spree/v2/storefront/product_serializer.rb +2 -2
  170. data/app/serializers/spree/v2/storefront/promotion_serializer.rb +1 -1
  171. data/app/serializers/spree/v2/storefront/shipment_serializer.rb +5 -1
  172. data/app/serializers/spree/v2/storefront/store_credit_serializer.rb +1 -1
  173. data/app/serializers/spree/v2/storefront/store_serializer.rb +5 -10
  174. data/app/serializers/spree/v2/storefront/taxon_serializer.rb +1 -1
  175. data/app/serializers/spree/v2/storefront/taxonomy_serializer.rb +1 -1
  176. data/app/serializers/spree/v2/storefront/user_serializer.rb +1 -1
  177. data/app/serializers/spree/v2/storefront/variant_serializer.rb +1 -1
  178. data/app/serializers/spree/v2/storefront/wished_item_serializer.rb +29 -0
  179. data/app/serializers/spree/v2/storefront/wishlist_serializer.rb +17 -0
  180. data/app/services/spree/webhooks/subscribers/handle_request.rb +73 -0
  181. data/app/services/spree/webhooks/subscribers/make_request.rb +82 -0
  182. data/app/services/spree/webhooks/subscribers/queue_requests.rb +23 -0
  183. data/app/services/spree/webhooks.rb +13 -0
  184. data/config/i18n-tasks.yml +40 -0
  185. data/config/initializers/doorkeeper.rb +12 -12
  186. data/config/locales/en.yml +29 -27
  187. data/config/routes.rb +84 -179
  188. data/db/migrate/20210902162826_create_spree_webhooks_tables.rb +16 -0
  189. data/db/migrate/20210919183228_enable_polymorphic_resource_owner.rb +21 -0
  190. data/db/migrate/20211025162826_create_spree_webhooks_events.rb +14 -0
  191. data/docs/oauth/index.yml +126 -33
  192. data/docs/v2/platform/index.yaml +19696 -1734
  193. data/docs/v2/storefront/index.yaml +15050 -14553
  194. data/lib/spree/api/configuration.rb +11 -0
  195. data/lib/spree/api/dependencies.rb +165 -0
  196. data/lib/spree/api/engine.rb +10 -5
  197. data/lib/spree/api/testing_support/factories/oauth_application_factory.rb +6 -0
  198. data/lib/spree/api/testing_support/factories/webhook_event_factory.rb +27 -0
  199. data/lib/spree/api/testing_support/factories/webhook_subscriber_factory.rb +13 -0
  200. data/lib/spree/api/testing_support/factories.rb +3 -0
  201. data/lib/spree/api/testing_support/jobs.rb +18 -0
  202. data/lib/spree/api/testing_support/matchers/webhooks.rb +67 -0
  203. data/lib/spree/api/testing_support/serializers.rb +25 -0
  204. data/lib/spree/api/testing_support/spree_webhooks.rb +9 -0
  205. data/lib/spree/api/testing_support/v2/base.rb +1 -1
  206. data/lib/spree/api/testing_support/v2/current_order.rb +34 -1
  207. data/lib/spree/api/testing_support/v2/platform_contexts.rb +100 -52
  208. data/lib/spree/api/testing_support/v2/serializers_params.rb +3 -1
  209. data/lib/spree/api.rb +0 -3
  210. data/lib/spree_api.rb +0 -1
  211. data/spec/fixtures/files/icon_256x256.jpg +0 -0
  212. data/spree_api.gemspec +15 -16
  213. metadata +163 -177
  214. data/app/controllers/spree/api/base_controller.rb +0 -171
  215. data/app/controllers/spree/api/errors_controller.rb +0 -9
  216. data/app/controllers/spree/api/v1/addresses_controller.rb +0 -46
  217. data/app/controllers/spree/api/v1/checkouts_controller.rb +0 -106
  218. data/app/controllers/spree/api/v1/classifications_controller.rb +0 -21
  219. data/app/controllers/spree/api/v1/countries_controller.rb +0 -22
  220. data/app/controllers/spree/api/v1/credit_cards_controller.rb +0 -26
  221. data/app/controllers/spree/api/v1/customer_returns_controller.rb +0 -25
  222. data/app/controllers/spree/api/v1/images_controller.rb +0 -58
  223. data/app/controllers/spree/api/v1/inventory_units_controller.rb +0 -54
  224. data/app/controllers/spree/api/v1/line_items_controller.rb +0 -70
  225. data/app/controllers/spree/api/v1/option_types_controller.rb +0 -60
  226. data/app/controllers/spree/api/v1/option_values_controller.rb +0 -62
  227. data/app/controllers/spree/api/v1/orders_controller.rb +0 -160
  228. data/app/controllers/spree/api/v1/payments_controller.rb +0 -82
  229. data/app/controllers/spree/api/v1/product_properties_controller.rb +0 -73
  230. data/app/controllers/spree/api/v1/products_controller.rb +0 -131
  231. data/app/controllers/spree/api/v1/promotions_controller.rb +0 -30
  232. data/app/controllers/spree/api/v1/properties_controller.rb +0 -70
  233. data/app/controllers/spree/api/v1/reimbursements_controller.rb +0 -25
  234. data/app/controllers/spree/api/v1/return_authorizations_controller.rb +0 -70
  235. data/app/controllers/spree/api/v1/shipments_controller.rb +0 -196
  236. data/app/controllers/spree/api/v1/states_controller.rb +0 -36
  237. data/app/controllers/spree/api/v1/stock_items_controller.rb +0 -82
  238. data/app/controllers/spree/api/v1/stock_locations_controller.rb +0 -53
  239. data/app/controllers/spree/api/v1/stock_movements_controller.rb +0 -45
  240. data/app/controllers/spree/api/v1/stores_controller.rb +0 -56
  241. data/app/controllers/spree/api/v1/taxonomies_controller.rb +0 -67
  242. data/app/controllers/spree/api/v1/taxons_controller.rb +0 -100
  243. data/app/controllers/spree/api/v1/users_controller.rb +0 -97
  244. data/app/controllers/spree/api/v1/variants_controller.rb +0 -81
  245. data/app/controllers/spree/api/v1/zones_controller.rb +0 -55
  246. data/app/helpers/spree/api/api_helpers.rb +0 -190
  247. data/app/models/spree/api_configuration.rb +0 -10
  248. data/app/models/spree/api_dependencies.rb +0 -111
  249. data/app/views/spree/api/errors/gateway_error.rabl +0 -2
  250. data/app/views/spree/api/errors/invalid_api_key.rabl +0 -2
  251. data/app/views/spree/api/errors/invalid_resource.rabl +0 -3
  252. data/app/views/spree/api/errors/must_specify_api_key.rabl +0 -2
  253. data/app/views/spree/api/errors/not_found.rabl +0 -2
  254. data/app/views/spree/api/errors/unauthorized.rabl +0 -2
  255. data/app/views/spree/api/v1/addresses/show.rabl +0 -10
  256. data/app/views/spree/api/v1/adjustments/show.rabl +0 -4
  257. data/app/views/spree/api/v1/countries/index.rabl +0 -7
  258. data/app/views/spree/api/v1/countries/show.rabl +0 -5
  259. data/app/views/spree/api/v1/credit_cards/index.rabl +0 -7
  260. data/app/views/spree/api/v1/credit_cards/show.rabl +0 -3
  261. data/app/views/spree/api/v1/customer_returns/index.rabl +0 -7
  262. data/app/views/spree/api/v1/images/index.rabl +0 -4
  263. data/app/views/spree/api/v1/images/new.rabl +0 -3
  264. data/app/views/spree/api/v1/images/show.rabl +0 -6
  265. data/app/views/spree/api/v1/inventory_units/show.rabl +0 -2
  266. data/app/views/spree/api/v1/line_items/new.rabl +0 -3
  267. data/app/views/spree/api/v1/line_items/show.rabl +0 -14
  268. data/app/views/spree/api/v1/option_types/index.rabl +0 -3
  269. data/app/views/spree/api/v1/option_types/new.rabl +0 -3
  270. data/app/views/spree/api/v1/option_types/show.rabl +0 -5
  271. data/app/views/spree/api/v1/option_values/index.rabl +0 -3
  272. data/app/views/spree/api/v1/option_values/new.rabl +0 -3
  273. data/app/views/spree/api/v1/option_values/show.rabl +0 -2
  274. data/app/views/spree/api/v1/orders/address.rabl +0 -0
  275. data/app/views/spree/api/v1/orders/canceled.rabl +0 -0
  276. data/app/views/spree/api/v1/orders/cart.rabl +0 -0
  277. data/app/views/spree/api/v1/orders/complete.rabl +0 -0
  278. data/app/views/spree/api/v1/orders/could_not_apply_coupon.rabl +0 -2
  279. data/app/views/spree/api/v1/orders/could_not_transition.rabl +0 -3
  280. data/app/views/spree/api/v1/orders/index.rabl +0 -7
  281. data/app/views/spree/api/v1/orders/insufficient_quantity.rabl +0 -2
  282. data/app/views/spree/api/v1/orders/invalid_shipping_method.rabl +0 -2
  283. data/app/views/spree/api/v1/orders/mine.rabl +0 -9
  284. data/app/views/spree/api/v1/orders/order.rabl +0 -10
  285. data/app/views/spree/api/v1/orders/payment.rabl +0 -3
  286. data/app/views/spree/api/v1/orders/show.rabl +0 -51
  287. data/app/views/spree/api/v1/payments/credit_over_limit.rabl +0 -2
  288. data/app/views/spree/api/v1/payments/index.rabl +0 -7
  289. data/app/views/spree/api/v1/payments/new.rabl +0 -5
  290. data/app/views/spree/api/v1/payments/show.rabl +0 -2
  291. data/app/views/spree/api/v1/payments/update_forbidden.rabl +0 -2
  292. data/app/views/spree/api/v1/product_properties/index.rabl +0 -7
  293. data/app/views/spree/api/v1/product_properties/new.rabl +0 -2
  294. data/app/views/spree/api/v1/product_properties/show.rabl +0 -2
  295. data/app/views/spree/api/v1/products/index.rabl +0 -9
  296. data/app/views/spree/api/v1/products/new.rabl +0 -3
  297. data/app/views/spree/api/v1/products/product.rabl +0 -1
  298. data/app/views/spree/api/v1/products/show.rabl +0 -36
  299. data/app/views/spree/api/v1/promotions/handler.rabl +0 -5
  300. data/app/views/spree/api/v1/promotions/show.rabl +0 -2
  301. data/app/views/spree/api/v1/properties/index.rabl +0 -7
  302. data/app/views/spree/api/v1/properties/new.rabl +0 -2
  303. data/app/views/spree/api/v1/properties/show.rabl +0 -2
  304. data/app/views/spree/api/v1/reimbursements/index.rabl +0 -7
  305. data/app/views/spree/api/v1/return_authorizations/index.rabl +0 -7
  306. data/app/views/spree/api/v1/return_authorizations/new.rabl +0 -3
  307. data/app/views/spree/api/v1/return_authorizations/show.rabl +0 -2
  308. data/app/views/spree/api/v1/shared/stock_location_required.rabl +0 -2
  309. data/app/views/spree/api/v1/shipments/big.rabl +0 -48
  310. data/app/views/spree/api/v1/shipments/cannot_ready_shipment.rabl +0 -2
  311. data/app/views/spree/api/v1/shipments/mine.rabl +0 -9
  312. data/app/views/spree/api/v1/shipments/show.rabl +0 -32
  313. data/app/views/spree/api/v1/shipments/small.rabl +0 -37
  314. data/app/views/spree/api/v1/shipping_rates/show.rabl +0 -2
  315. data/app/views/spree/api/v1/states/index.rabl +0 -12
  316. data/app/views/spree/api/v1/states/show.rabl +0 -2
  317. data/app/views/spree/api/v1/stock_items/index.rabl +0 -7
  318. data/app/views/spree/api/v1/stock_items/show.rabl +0 -5
  319. data/app/views/spree/api/v1/stock_locations/index.rabl +0 -7
  320. data/app/views/spree/api/v1/stock_locations/show.rabl +0 -8
  321. data/app/views/spree/api/v1/stock_movements/index.rabl +0 -7
  322. data/app/views/spree/api/v1/stock_movements/show.rabl +0 -5
  323. data/app/views/spree/api/v1/stores/index.rabl +0 -4
  324. data/app/views/spree/api/v1/stores/show.rabl +0 -2
  325. data/app/views/spree/api/v1/tags/index.rabl +0 -9
  326. data/app/views/spree/api/v1/taxonomies/index.rabl +0 -7
  327. data/app/views/spree/api/v1/taxonomies/jstree.rabl +0 -7
  328. data/app/views/spree/api/v1/taxonomies/nested.rabl +0 -11
  329. data/app/views/spree/api/v1/taxonomies/new.rabl +0 -3
  330. data/app/views/spree/api/v1/taxonomies/show.rabl +0 -15
  331. data/app/views/spree/api/v1/taxons/index.rabl +0 -10
  332. data/app/views/spree/api/v1/taxons/jstree.rabl +0 -7
  333. data/app/views/spree/api/v1/taxons/new.rabl +0 -3
  334. data/app/views/spree/api/v1/taxons/show.rabl +0 -6
  335. data/app/views/spree/api/v1/taxons/taxons.rabl +0 -5
  336. data/app/views/spree/api/v1/users/index.rabl +0 -7
  337. data/app/views/spree/api/v1/users/new.rabl +0 -3
  338. data/app/views/spree/api/v1/users/show.rabl +0 -11
  339. data/app/views/spree/api/v1/variants/big.rabl +0 -14
  340. data/app/views/spree/api/v1/variants/index.rabl +0 -9
  341. data/app/views/spree/api/v1/variants/new.rabl +0 -2
  342. data/app/views/spree/api/v1/variants/show.rabl +0 -3
  343. data/app/views/spree/api/v1/variants/small.rabl +0 -18
  344. data/app/views/spree/api/v1/zones/index.rabl +0 -7
  345. data/app/views/spree/api/v1/zones/show.rabl +0 -6
  346. data/config/initializers/rabl.rb +0 -9
  347. data/lib/spree/api/controller_setup.rb +0 -19
  348. data/lib/spree/api/responders/rabl_template.rb +0 -28
  349. data/lib/spree/api/responders.rb +0 -11
  350. data/lib/spree/api/testing_support/helpers.rb +0 -44
  351. data/lib/spree/api/testing_support/setup.rb +0 -16
@@ -1,70 +0,0 @@
1
- module Spree
2
- module Api
3
- module V1
4
- class ReturnAuthorizationsController < Spree::Api::BaseController
5
- def create
6
- authorize! :create, ReturnAuthorization
7
- @return_authorization = order.return_authorizations.build(return_authorization_params)
8
- if @return_authorization.save
9
- respond_with(@return_authorization, status: 201, default_template: :show)
10
- else
11
- invalid_resource!(@return_authorization)
12
- end
13
- end
14
-
15
- def destroy
16
- @return_authorization = order.return_authorizations.accessible_by(current_ability, :destroy).find(params[:id])
17
- @return_authorization.destroy
18
- respond_with(@return_authorization, status: 204)
19
- end
20
-
21
- def index
22
- authorize! :admin, ReturnAuthorization
23
- @return_authorizations = order.return_authorizations.accessible_by(current_ability).
24
- ransack(params[:q]).result.
25
- page(params[:page]).per(params[:per_page])
26
- respond_with(@return_authorizations)
27
- end
28
-
29
- def new
30
- authorize! :admin, ReturnAuthorization
31
- end
32
-
33
- def show
34
- authorize! :admin, ReturnAuthorization
35
- @return_authorization = order.return_authorizations.accessible_by(current_ability, :show).find(params[:id])
36
- respond_with(@return_authorization)
37
- end
38
-
39
- def update
40
- @return_authorization = order.return_authorizations.accessible_by(current_ability, :update).find(params[:id])
41
- if @return_authorization.update(return_authorization_params)
42
- respond_with(@return_authorization, default_template: :show)
43
- else
44
- invalid_resource!(@return_authorization)
45
- end
46
- end
47
-
48
- def cancel
49
- @return_authorization = order.return_authorizations.accessible_by(current_ability, :update).find(params[:id])
50
- if @return_authorization.cancel
51
- respond_with @return_authorization, default_template: :show
52
- else
53
- invalid_resource!(@return_authorization)
54
- end
55
- end
56
-
57
- private
58
-
59
- def order
60
- @order ||= Spree::Order.find_by!(number: order_id)
61
- authorize! :show, @order
62
- end
63
-
64
- def return_authorization_params
65
- params.require(:return_authorization).permit(permitted_return_authorization_attributes)
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,196 +0,0 @@
1
- module Spree
2
- module Api
3
- module V1
4
- class ShipmentsController < Spree::Api::BaseController
5
- before_action :find_and_update_shipment, only: [:ship, :ready, :add, :remove]
6
- before_action :load_transfer_params, only: [:transfer_to_location, :transfer_to_shipment]
7
-
8
- def mine
9
- if current_api_user.persisted?
10
- @shipments = Spree::Shipment.
11
- reverse_chronological.
12
- joins(:order).
13
- where(spree_orders: { user_id: current_api_user.id }).
14
- includes(mine_includes).
15
- ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
16
- else
17
- render 'spree/api/errors/unauthorized', status: :unauthorized
18
- end
19
- end
20
-
21
- def create
22
- @order = Spree::Order.find_by!(number: params.fetch(:shipment).fetch(:order_id))
23
- authorize! :show, @order
24
- authorize! :create, Shipment
25
- quantity = params[:quantity].to_i
26
- @shipment = @order.shipments.create(stock_location_id: params.fetch(:stock_location_id))
27
-
28
- @line_item = Spree::Dependencies.cart_add_item_service.constantize.call(order: @order,
29
- variant: variant,
30
- quantity: quantity,
31
- options: { shipment: @shipment }).value
32
-
33
- respond_with(@shipment.reload, default_template: :show)
34
- end
35
-
36
- def update
37
- @shipment = Spree::Shipment.accessible_by(current_ability, :update).readonly(false).find_by!(number: params[:id])
38
- @shipment.update_attributes_and_order(shipment_params)
39
-
40
- respond_with(@shipment.reload, default_template: :show)
41
- end
42
-
43
- def ready
44
- unless @shipment.ready?
45
- if @shipment.can_ready?
46
- @shipment.ready!
47
- else
48
- render 'spree/api/v1/shipments/cannot_ready_shipment', status: 422 and return
49
- end
50
- end
51
- respond_with(@shipment, default_template: :show)
52
- end
53
-
54
- def ship
55
- @shipment.ship! unless @shipment.shipped?
56
- respond_with(@shipment, default_template: :show)
57
- end
58
-
59
- def add
60
- quantity = params[:quantity].to_i
61
-
62
- Spree::Dependencies.cart_add_item_service.constantize.call(order: @shipment.order,
63
- variant: variant,
64
- quantity: quantity,
65
- options: { shipment: @shipment })
66
-
67
- respond_with(@shipment, default_template: :show)
68
- end
69
-
70
- def remove
71
- quantity = if params.key?(:quantity)
72
- params[:quantity].to_i
73
- else
74
- @shipment.inventory_units_for(variant).sum(:quantity)
75
- end
76
-
77
- Spree::Dependencies.cart_remove_item_service.constantize.call(order: @shipment.order,
78
- variant: variant,
79
- quantity: quantity,
80
- options: { shipment: @shipment })
81
-
82
- if @shipment.inventory_units.any?
83
- @shipment.reload
84
- else
85
- @shipment.destroy!
86
- end
87
-
88
- respond_with(@shipment, default_template: :show)
89
- end
90
-
91
- def transfer_to_location
92
- @stock_location = Spree::StockLocation.find(params[:stock_location_id])
93
-
94
- unless @quantity > 0
95
- unprocessable_entity("#{Spree.t(:shipment_transfer_errors_occurred, scope: 'api')} \n #{Spree.t(:negative_quantity, scope: 'api')}")
96
- return
97
- end
98
-
99
- transfer = @original_shipment.transfer_to_location(@variant, @quantity, @stock_location)
100
- if transfer.valid?
101
- transfer.run!
102
- render json: { message: Spree.t(:shipment_transfer_success) }, status: 201
103
- else
104
- render json: { message: transfer.errors.full_messages.to_sentence }, status: 422
105
- end
106
- end
107
-
108
- def transfer_to_shipment
109
- @target_shipment = Spree::Shipment.find_by!(number: params[:target_shipment_number])
110
-
111
- error =
112
- if @quantity < 0 && @target_shipment == @original_shipment
113
- "#{Spree.t(:negative_quantity, scope: 'api')}, \n#{Spree.t('wrong_shipment_target', scope: 'api')}"
114
- elsif @target_shipment == @original_shipment
115
- Spree.t(:wrong_shipment_target, scope: 'api')
116
- elsif @quantity < 0
117
- Spree.t(:negative_quantity, scope: 'api')
118
- end
119
-
120
- if error
121
- unprocessable_entity("#{Spree.t(:shipment_transfer_errors_occurred, scope: 'api')} \n#{error}")
122
- else
123
- transfer = @original_shipment.transfer_to_shipment(@variant, @quantity, @target_shipment)
124
- if transfer.valid?
125
- transfer.run!
126
- render json: { message: Spree.t(:shipment_transfer_success) }, status: 201
127
- else
128
- render json: { message: transfer.errors.full_messages }, status: 422
129
- end
130
- end
131
- end
132
-
133
- private
134
-
135
- def load_transfer_params
136
- @original_shipment = Spree::Shipment.find_by!(number: params[:original_shipment_number])
137
- @variant = Spree::Variant.find(params[:variant_id])
138
- @quantity = params[:quantity].to_i
139
- authorize! :show, @original_shipment
140
- authorize! :create, Shipment
141
- end
142
-
143
- def find_and_update_shipment
144
- @shipment = Spree::Shipment.accessible_by(current_ability, :update).readonly(false).find_by!(number: params[:id])
145
- @shipment.update(shipment_params)
146
- @shipment.reload
147
- end
148
-
149
- def shipment_params
150
- if params[:shipment] && !params[:shipment].empty?
151
- params.require(:shipment).permit(permitted_shipment_attributes)
152
- else
153
- {}
154
- end
155
- end
156
-
157
- def variant
158
- @variant ||= Spree::Variant.unscoped.find(params.fetch(:variant_id))
159
- end
160
-
161
- def mine_includes
162
- {
163
- order: {
164
- bill_address: {
165
- state: {},
166
- country: {}
167
- },
168
- ship_address: {
169
- state: {},
170
- country: {}
171
- },
172
- adjustments: {},
173
- payments: {
174
- order: {},
175
- payment_method: {}
176
- }
177
- },
178
- inventory_units: {
179
- line_item: {
180
- product: {},
181
- variant: {}
182
- },
183
- variant: {
184
- product: {},
185
- default_price: {},
186
- option_values: {
187
- option_type: {}
188
- }
189
- }
190
- }
191
- }
192
- end
193
- end
194
- end
195
- end
196
- end
@@ -1,36 +0,0 @@
1
- module Spree
2
- module Api
3
- module V1
4
- class StatesController < Spree::Api::BaseController
5
- skip_before_action :authenticate_user
6
-
7
- def index
8
- @states = scope.ransack(params[:q]).result.includes(:country)
9
-
10
- if params[:page] || params[:per_page]
11
- @states = @states.page(params[:page]).per(params[:per_page])
12
- end
13
-
14
- state = @states.last
15
- respond_with(@states) if stale?(state)
16
- end
17
-
18
- def show
19
- @state = scope.find(params[:id])
20
- respond_with(@state)
21
- end
22
-
23
- private
24
-
25
- def scope
26
- if params[:country_id]
27
- @country = Country.accessible_by(current_ability, :show).find(params[:country_id])
28
- @country.states.accessible_by(current_ability).order('name ASC')
29
- else
30
- State.accessible_by(current_ability).order('name ASC')
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,82 +0,0 @@
1
- module Spree
2
- module Api
3
- module V1
4
- class StockItemsController < Spree::Api::BaseController
5
- before_action :stock_location, except: [:update, :destroy]
6
-
7
- def index
8
- @stock_items = scope.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
9
- respond_with(@stock_items)
10
- end
11
-
12
- def show
13
- @stock_item = scope.find(params[:id])
14
- respond_with(@stock_item)
15
- end
16
-
17
- def create
18
- authorize! :create, StockItem
19
-
20
- count_on_hand = 0
21
- if params[:stock_item].key?(:count_on_hand)
22
- count_on_hand = params[:stock_item][:count_on_hand].to_i
23
- end
24
-
25
- @stock_item = scope.new(stock_item_params)
26
- if @stock_item.save
27
- @stock_item.adjust_count_on_hand(count_on_hand)
28
- respond_with(@stock_item, status: 201, default_template: :show)
29
- else
30
- invalid_resource!(@stock_item)
31
- end
32
- end
33
-
34
- def update
35
- @stock_item = StockItem.accessible_by(current_ability, :update).find(params[:id])
36
-
37
- if params[:stock_item].key?(:backorderable)
38
- @stock_item.backorderable = params[:stock_item][:backorderable]
39
- @stock_item.save
40
- end
41
-
42
- count_on_hand = 0
43
- if params[:stock_item].key?(:count_on_hand)
44
- count_on_hand = params[:stock_item][:count_on_hand].to_i
45
- params[:stock_item].delete(:count_on_hand)
46
- end
47
-
48
- updated = params[:stock_item][:force] ? @stock_item.set_count_on_hand(count_on_hand)
49
- : @stock_item.adjust_count_on_hand(count_on_hand)
50
-
51
- if updated
52
- respond_with(@stock_item, status: 200, default_template: :show)
53
- else
54
- invalid_resource!(@stock_item)
55
- end
56
- end
57
-
58
- def destroy
59
- @stock_item = StockItem.accessible_by(current_ability, :destroy).find(params[:id])
60
- @stock_item.destroy
61
- respond_with(@stock_item, status: 204)
62
- end
63
-
64
- private
65
-
66
- def stock_location
67
- render 'spree/api/v1/shared/stock_location_required', status: 422 and return unless params[:stock_location_id]
68
- @stock_location ||= StockLocation.accessible_by(current_ability, :show).find(params[:stock_location_id])
69
- end
70
-
71
- def scope
72
- includes = { variant: [{ option_values: :option_type }, :product] }
73
- @stock_location.stock_items.accessible_by(current_ability, :show).includes(includes)
74
- end
75
-
76
- def stock_item_params
77
- params.require(:stock_item).permit(permitted_stock_item_attributes)
78
- end
79
- end
80
- end
81
- end
82
- end
@@ -1,53 +0,0 @@
1
- module Spree
2
- module Api
3
- module V1
4
- class StockLocationsController < Spree::Api::BaseController
5
- def index
6
- authorize! :index, StockLocation
7
- @stock_locations = StockLocation.accessible_by(current_ability).order('name ASC').
8
- ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
9
- respond_with(@stock_locations)
10
- end
11
-
12
- def show
13
- respond_with(stock_location)
14
- end
15
-
16
- def create
17
- authorize! :create, StockLocation
18
- @stock_location = StockLocation.new(stock_location_params)
19
- if @stock_location.save
20
- respond_with(@stock_location, status: 201, default_template: :show)
21
- else
22
- invalid_resource!(@stock_location)
23
- end
24
- end
25
-
26
- def update
27
- authorize! :update, stock_location
28
- if stock_location.update(stock_location_params)
29
- respond_with(stock_location, status: 200, default_template: :show)
30
- else
31
- invalid_resource!(stock_location)
32
- end
33
- end
34
-
35
- def destroy
36
- authorize! :destroy, stock_location
37
- stock_location.destroy
38
- respond_with(stock_location, status: 204)
39
- end
40
-
41
- private
42
-
43
- def stock_location
44
- @stock_location ||= StockLocation.accessible_by(current_ability, :show).find(params[:id])
45
- end
46
-
47
- def stock_location_params
48
- params.require(:stock_location).permit(permitted_stock_location_attributes)
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,45 +0,0 @@
1
- module Spree
2
- module Api
3
- module V1
4
- class StockMovementsController < Spree::Api::BaseController
5
- before_action :stock_location, except: [:update, :destroy]
6
-
7
- def index
8
- authorize! :index, StockMovement
9
- @stock_movements = scope.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
10
- respond_with(@stock_movements)
11
- end
12
-
13
- def show
14
- @stock_movement = scope.find(params[:id])
15
- respond_with(@stock_movement)
16
- end
17
-
18
- def create
19
- authorize! :create, StockMovement
20
- @stock_movement = scope.new(stock_movement_params)
21
- if @stock_movement.save
22
- respond_with(@stock_movement, status: 201, default_template: :show)
23
- else
24
- invalid_resource!(@stock_movement)
25
- end
26
- end
27
-
28
- private
29
-
30
- def stock_location
31
- render 'spree/api/v1/shared/stock_location_required', status: 422 and return unless params[:stock_location_id]
32
- @stock_location ||= StockLocation.accessible_by(current_ability, :show).find(params[:stock_location_id])
33
- end
34
-
35
- def scope
36
- @stock_location.stock_movements.accessible_by(current_ability, :show)
37
- end
38
-
39
- def stock_movement_params
40
- params.require(:stock_movement).permit(permitted_stock_movement_attributes)
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,56 +0,0 @@
1
- module Spree
2
- module Api
3
- module V1
4
- class StoresController < Spree::Api::BaseController
5
- before_action :get_store, except: [:index, :create]
6
-
7
- def index
8
- authorize! :index, Store
9
- @stores = Store.accessible_by(current_ability).all
10
- respond_with(@stores)
11
- end
12
-
13
- def create
14
- authorize! :create, Store
15
- @store = Store.new(store_params)
16
- @store.code = params[:store][:code]
17
- if @store.save
18
- respond_with(@store, status: 201, default_template: :show)
19
- else
20
- invalid_resource!(@store)
21
- end
22
- end
23
-
24
- def update
25
- authorize! :update, @store
26
- if @store.update(store_params)
27
- respond_with(@store, status: 200, default_template: :show)
28
- else
29
- invalid_resource!(@store)
30
- end
31
- end
32
-
33
- def show
34
- authorize! :show, @store
35
- respond_with(@store)
36
- end
37
-
38
- def destroy
39
- authorize! :destroy, @store
40
- @store.destroy
41
- respond_with(@store, status: 204)
42
- end
43
-
44
- private
45
-
46
- def get_store
47
- @store = Store.find(params[:id])
48
- end
49
-
50
- def store_params
51
- params.require(:store).permit(permitted_store_attributes)
52
- end
53
- end
54
- end
55
- end
56
- end
@@ -1,67 +0,0 @@
1
- module Spree
2
- module Api
3
- module V1
4
- class TaxonomiesController < Spree::Api::BaseController
5
- def index
6
- respond_with(taxonomies)
7
- end
8
-
9
- def show
10
- respond_with(taxonomy)
11
- end
12
-
13
- # Because JSTree wants parameters in a *slightly* different format
14
- def jstree
15
- show
16
- end
17
-
18
- def new; end
19
-
20
- def create
21
- authorize! :create, Taxonomy
22
- @taxonomy = current_store.taxonomies.new(taxonomy_params)
23
- if @taxonomy.save
24
- respond_with(@taxonomy, status: 201, default_template: :show)
25
- else
26
- invalid_resource!(@taxonomy)
27
- end
28
- end
29
-
30
- def update
31
- authorize! :update, taxonomy
32
- if taxonomy.update(taxonomy_params)
33
- respond_with(taxonomy, status: 200, default_template: :show)
34
- else
35
- invalid_resource!(taxonomy)
36
- end
37
- end
38
-
39
- def destroy
40
- authorize! :destroy, taxonomy
41
- taxonomy.destroy
42
- respond_with(taxonomy, status: 204)
43
- end
44
-
45
- private
46
-
47
- def taxonomies
48
- @taxonomies = Taxonomy.accessible_by(current_ability).order('name').includes(root: :children).
49
- ransack(params[:q]).result.
50
- page(params[:page]).per(params[:per_page])
51
- end
52
-
53
- def taxonomy
54
- @taxonomy ||= Taxonomy.accessible_by(current_ability, :show).find(params[:id])
55
- end
56
-
57
- def taxonomy_params
58
- if params[:taxonomy] && !params[:taxonomy].empty?
59
- params.require(:taxonomy).permit(permitted_taxonomy_attributes)
60
- else
61
- {}
62
- end
63
- end
64
- end
65
- end
66
- end
67
- end