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,35 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class EstimatedShippingRateSerializer < BaseSerializer
5
- set_type :shipping_rate
6
-
7
- cache_options store: nil
8
-
9
- attributes :name, :selected, :cost, :tax_amount
10
-
11
- attribute :shipping_method_id do |shipping_rate|
12
- shipping_rate.shipping_method_id.to_s
13
- end
14
-
15
- belongs_to :shipping_method, serializer: Spree.api.storefront_shipping_method_serializer
16
-
17
- attribute :final_price do |shipping_rate|
18
- shipping_rate.cost
19
- end
20
-
21
- attributes :display_cost, :display_final_price do |object, params|
22
- Spree::Money.new(object.cost, currency: params[:currency]).to_s
23
- end
24
-
25
- attribute :display_tax_amount do |object, params|
26
- Spree::Money.new(object.tax_amount, currency: params[:currency]).to_s
27
- end
28
-
29
- attribute :free do |object|
30
- object.cost.zero?
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,16 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class GiftCardSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :gift_card
8
-
9
- attributes :amount, :amount_used, :amount_remaining, :display_amount, :display_amount_used,
10
- :display_amount_remaining, :expires_at
11
-
12
- attribute :code, &:display_code
13
- end
14
- end
15
- end
16
- end
@@ -1,13 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class ImageSerializer < BaseSerializer
5
- include ::Spree::Api::V2::ImageTransformationConcern
6
-
7
- set_type :image
8
-
9
- attributes :styles, :position, :alt, :original_url
10
- end
11
- end
12
- end
13
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class LineItemSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :line_item
8
-
9
- attributes :name, :quantity, :price, :slug, :options_text, :currency,
10
- :display_price, :total, :display_total, :adjustment_total,
11
- :display_adjustment_total, :additional_tax_total,
12
- :discounted_amount, :display_discounted_amount,
13
- :display_additional_tax_total, :promo_total, :display_promo_total,
14
- :included_tax_total, :display_included_tax_total,
15
- :pre_tax_amount, :display_pre_tax_amount, :compare_at_amount, :display_compare_at_amount,
16
- :public_metadata
17
-
18
- belongs_to :variant, serializer: Spree.api.storefront_variant_serializer
19
- has_many :digital_links, serializer: Spree.api.storefront_digital_link_serializer
20
- end
21
- end
22
- end
23
- end
@@ -1,15 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class OptionTypeSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :option_type
8
-
9
- attributes :name, :presentation, :position, :public_metadata
10
-
11
- has_many :option_values, serializer: Spree.api.storefront_option_value_serializer
12
- end
13
- end
14
- end
15
- end
@@ -1,13 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class OptionValueSerializer < BaseSerializer
5
- set_type :option_value
6
-
7
- attributes :name, :presentation, :position, :public_metadata
8
-
9
- belongs_to :option_type, serializer: Spree.api.storefront_option_type_serializer
10
- end
11
- end
12
- end
13
- end
@@ -1,14 +0,0 @@
1
- # this is actually a serializer for Spree::OrderPromotion, not Spree::Promotion
2
- # we should fix this in the future
3
- module Spree
4
- module V2
5
- module Storefront
6
- class OrderPromotionSerializer < BaseSerializer
7
- set_id :promotion_id
8
- set_type :promotion
9
-
10
- attributes :name, :description, :amount, :display_amount, :code, :public_metadata
11
- end
12
- end
13
- end
14
- end
@@ -1,11 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class OrderSerializer < CartSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :order
8
- end
9
- end
10
- end
11
- end
@@ -1,17 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class PaymentMethodSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :payment_method
8
-
9
- attributes :type, :name, :description, :public_metadata
10
-
11
- attribute :preferences do |object|
12
- object.public_preferences.as_json
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,20 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class PaymentSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :payment
8
-
9
- has_one :source, polymorphic: true
10
- has_one :payment_method, serializer: Spree.api.storefront_payment_method_serializer
11
-
12
- attributes :amount, :response_code, :number, :cvv_response_code, :cvv_response_message, :payment_method_name, :state, :public_metadata
13
-
14
- attribute :payment_method_id do |payment|
15
- payment.payment_method_id&.to_s
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,12 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class PaymentSourceSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- belongs_to :payment_method, serializer: Spree.api.storefront_payment_method_serializer
8
- belongs_to :user, serializer: Spree.api.storefront_user_serializer
9
- end
10
- end
11
- end
12
- end
@@ -1,19 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class PolicySerializer < BaseSerializer
5
- set_type :policy
6
-
7
- attributes :name, :slug, :created_at, :updated_at
8
-
9
- attribute :body do |object|
10
- object.body.to_plain_text
11
- end
12
-
13
- attribute :body_html do |object|
14
- object.body.to_s
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class PostCategorySerializer < ::Spree::Api::V2::BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :post_category
8
-
9
- attributes :title, :slug, :created_at, :updated_at
10
-
11
- attribute :description do |category|
12
- category.description.to_plain_text if category.description.present?
13
- end
14
-
15
- has_many :posts, serializer: Spree.api.storefront_post_serializer, record_type: :post, if: proc { |_record, params|
16
- params[:include_posts] == true
17
- } do |category|
18
- category.posts.published.by_newest
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,51 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class PostSerializer < ::Spree::Api::V2::BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :post
8
-
9
- attributes :title, :slug, :published_at, :meta_title, :meta_description, :created_at, :updated_at
10
-
11
- attribute :excerpt do |post|
12
- post.excerpt.to_plain_text if post.excerpt.present?
13
- end
14
-
15
- attribute :content do |post|
16
- post.content.to_plain_text if post.content.present?
17
- end
18
-
19
- attribute :content_html do |post|
20
- post.content.to_s if post.content.present?
21
- end
22
-
23
- attribute :description do |post|
24
- post.description
25
- end
26
-
27
- attribute :shortened_description do |post|
28
- post.shortened_description
29
- end
30
-
31
- attribute :author_name do |post|
32
- post.author_name
33
- end
34
-
35
- attribute :post_category_title do |post|
36
- post.post_category_title
37
- end
38
-
39
- attribute :tags do |post|
40
- post.tag_list
41
- end
42
-
43
- attribute :image_url do |post, params|
44
- url_helpers.cdn_image_url(post.image.attachment) if post.image.present? && post.image.attached?
45
- end
46
-
47
- belongs_to :post_category, serializer: Spree.api.storefront_post_category_serializer, record_type: :post_category
48
- end
49
- end
50
- end
51
- end
@@ -1,19 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class ProductPropertySerializer < BaseSerializer
5
- set_type :product_property
6
-
7
- attribute :value, :filter_param, :show_property, :position
8
-
9
- attribute :name do |product_property|
10
- product_property.property_name
11
- end
12
-
13
- attribute :description do |product_property|
14
- product_property.property_presentation
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,92 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class ProductSerializer < BaseSerializer
5
- include ::Spree::Api::V2::DisplayMoneyHelper
6
- include Spree::Api::V2::PublicMetafieldsConcern
7
-
8
- set_type :product
9
-
10
- attributes :name, :description, :available_on, :slug, :meta_description, :meta_keywords, :updated_at, :sku, :barcode, :public_metadata
11
-
12
- attribute :purchasable do |product|
13
- product.purchasable?
14
- end
15
-
16
- attribute :in_stock do |product|
17
- product.in_stock?
18
- end
19
-
20
- attribute :backorderable do |product|
21
- product.backorderable?
22
- end
23
-
24
- attribute :available do |product|
25
- product.available?
26
- end
27
-
28
- attribute :currency do |_product, params|
29
- params[:currency]
30
- end
31
-
32
- attribute :price do |product, params|
33
- price(product, params[:currency], pricing_context_options(params))
34
- end
35
-
36
- attribute :display_price do |product, params|
37
- display_price(product, params[:currency], pricing_context_options(params))
38
- end
39
-
40
- attribute :compare_at_price do |product, params|
41
- compare_at_price(product, params[:currency], pricing_context_options(params))
42
- end
43
-
44
- attribute :display_compare_at_price do |product, params|
45
- display_compare_at_price(product, params[:currency], pricing_context_options(params))
46
- end
47
-
48
- def self.pricing_context_options(params)
49
- {
50
- store: params[:store],
51
- user: params[:user],
52
- tax_zone: params.dig(:price_options, :tax_zone)
53
- }
54
- end
55
-
56
- attribute :localized_slugs do |product, params|
57
- product.localized_slugs_for_store(params[:store])
58
- end
59
-
60
- attribute :tags, &:tag_list
61
- attribute :labels, &:label_list
62
-
63
- has_many :variants, serializer: Spree.api.storefront_variant_serializer
64
- has_many :option_types, serializer: Spree.api.storefront_option_type_serializer
65
- has_many :product_properties, serializer: Spree.api.storefront_product_property_serializer
66
-
67
- has_many :taxons, serializer: Spree.api.storefront_taxon_serializer, record_type: :taxon do |object, params|
68
- object.taxons_for_store(params[:store])
69
- end
70
-
71
- # all images from all variants
72
- has_many :images,
73
- object_method_name: :variant_images,
74
- id_method_name: :variant_image_ids,
75
- record_type: :image,
76
- serializer: Spree.api.storefront_image_serializer
77
-
78
- has_one :default_variant,
79
- object_method_name: :default_variant,
80
- id_method_name: :default_variant_id,
81
- record_type: :variant,
82
- serializer: Spree.api.storefront_variant_serializer
83
-
84
- has_one :primary_variant,
85
- object_method_name: :master,
86
- id_method_name: :master_id,
87
- record_type: :variant,
88
- serializer: Spree.api.storefront_variant_serializer
89
- end
90
- end
91
- end
92
- end
@@ -1,26 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class ShipmentSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :shipment
8
-
9
- attributes :number, :final_price, :display_final_price,
10
- :state, :shipped_at, :tracking_url, :public_metadata
11
-
12
- attribute :free do |shipment|
13
- shipment.free?
14
- end
15
-
16
- has_many :shipping_rates, serializer: Spree.api.storefront_shipping_rate_serializer
17
- has_one :selected_shipping_rate, serializer: Spree.api.storefront_shipping_rate_serializer
18
-
19
- belongs_to :stock_location, serializer: Spree.api.storefront_stock_location_serializer
20
- has_many :line_items, serializer: Spree.api.storefront_line_item_serializer do |shipment|
21
- shipment.line_items
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,10 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class ShippingCategorySerializer < BaseSerializer
5
- set_type :shipping_category
6
- attribute :name
7
- end
8
- end
9
- end
10
- end
@@ -1,12 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class ShippingMethodSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :shipping_method
8
- attributes :name, :public_metadata
9
- end
10
- end
11
- end
12
- end
@@ -1,26 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class ShippingRateSerializer < BaseSerializer
5
- set_type :shipping_rate
6
-
7
- attributes :name, :selected, :final_price, :display_final_price, :cost,
8
- :display_cost, :tax_amount, :display_tax_amount
9
-
10
- attribute :shipping_method_id do |shipping_rate|
11
- shipping_rate.shipping_method_id.to_s
12
- end
13
-
14
- belongs_to :shipping_method, serializer: Spree.api.storefront_shipping_method_serializer
15
-
16
- attribute :free do |shipping_rate|
17
- shipping_rate.free?
18
- end
19
-
20
- attribute :final_price_cents do |shipping_rate|
21
- shipping_rate.display_final_price.cents
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,11 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class StateSerializer < BaseSerializer
5
- set_type :state
6
-
7
- attributes :abbr, :name
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class StockLocationSerializer < BaseSerializer
5
- set_type :stock_location
6
-
7
- attributes :name
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class StoreCreditCategorySerializer < BaseSerializer
5
- set_type :store_credit_category
6
-
7
- attributes :name
8
- end
9
- end
10
- end
11
- end
@@ -1,15 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class StoreCreditEventSerializer < BaseSerializer
5
- set_type :store_credit_event
6
-
7
- attributes :action, :amount, :user_total_amount, :created_at
8
-
9
- attribute :order_number do |object|
10
- object.order&.number
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,19 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class StoreCreditSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :store_credit
8
-
9
- belongs_to :category, serializer: Spree.api.storefront_store_credit_category_serializer
10
- has_many :store_credit_events, serializer: Spree.api.storefront_store_credit_event_serializer
11
- belongs_to :credit_type,
12
- id_method_name: :type_id,
13
- serializer: Spree.api.storefront_store_credit_type_serializer
14
-
15
- attributes :amount, :amount_used, :created_at, :public_metadata
16
- end
17
- end
18
- end
19
- end
@@ -1,11 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class StoreCreditTypeSerializer < BaseSerializer
5
- set_type :store_credit_type
6
-
7
- attributes :name
8
- end
9
- end
10
- end
11
- end
@@ -1,18 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class StoreSerializer < BaseSerializer
5
- include Spree::Api::V2::StoreMediaSerializerImagesConcern
6
- include Spree::Api::V2::PublicMetafieldsConcern
7
-
8
- set_type :store
9
-
10
- attributes :name, :url, :meta_description, :meta_keywords, :seo_title, :default_currency,
11
- :default, :supported_currencies, :facebook, :twitter, :instagram, :default_locale,
12
- :customer_support_email, :description, :address, :contact_phone, :supported_locales
13
-
14
- has_one :default_country, serializer: Spree.api.storefront_country_serializer, record_type: :country, id_method_name: :default_country_id
15
- end
16
- end
17
- end
18
- end
@@ -1,13 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class TaxonImageSerializer < BaseSerializer
5
- include ::Spree::Api::V2::TaxonImageTransformationConcern
6
-
7
- set_type :taxon_image
8
-
9
- attributes :styles, :alt, :original_url
10
- end
11
- end
12
- end
13
- end
@@ -1,55 +0,0 @@
1
- module Spree
2
- module V2
3
- module Storefront
4
- class TaxonSerializer < BaseSerializer
5
- include Spree::Api::V2::PublicMetafieldsConcern
6
-
7
- set_type :taxon
8
-
9
- attributes :name, :pretty_name, :permalink, :seo_title, :meta_title, :meta_description,
10
- :meta_keywords, :left, :right, :position, :depth, :updated_at, :public_metadata
11
-
12
- attribute :description do |taxon|
13
- taxon.description.to_plain_text
14
- end
15
-
16
- attribute :has_products do |taxon|
17
- taxon.classification_count.positive? || taxon.active_products_with_descendants.exists?
18
- end
19
-
20
- attribute :header_url do |taxon|
21
- url_helpers.cdn_image_url(taxon.image.attachment) if taxon.image.present? && taxon.image.attached?
22
- end
23
-
24
- attribute :is_root do |taxon|
25
- taxon.root?
26
- end
27
-
28
- attribute :is_child do |taxon|
29
- taxon.child?
30
- end
31
-
32
- attribute :is_leaf do |taxon|
33
- taxon.leaf?
34
- end
35
-
36
- attribute :localized_slugs do |taxon, params|
37
- taxon.localized_slugs_for_store(params[:store])
38
- end
39
-
40
- belongs_to :parent, record_type: :taxon, serializer: Spree.api.storefront_taxon_serializer
41
- belongs_to :taxonomy, record_type: :taxonomy, serializer: Spree.api.storefront_taxonomy_serializer
42
-
43
- has_many :children, record_type: :taxon, serializer: Spree.api.storefront_taxon_serializer
44
- has_many :products, record_type: :product, serializer: Spree.api.storefront_product_serializer,
45
- if: proc { |_taxon, params| params && params[:include_products] == true }
46
-
47
- has_one :image,
48
- object_method_name: :icon,
49
- id_method_name: :icon_id,
50
- record_type: :taxon_image,
51
- serializer: Spree.api.storefront_taxon_image_serializer
52
- end
53
- end
54
- end
55
- end