workarea-api 4.4.7 → 4.5.0

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 (311) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.json +35 -0
  3. data/.github/workflows/ci.yml +35 -0
  4. data/.gitignore +1 -0
  5. data/.rubocop.yml +2 -0
  6. data/.stylelintrc.json +8 -0
  7. data/CHANGELOG.md +15 -11
  8. data/Gemfile +3 -2
  9. data/README.md +13 -0
  10. data/Rakefile +14 -5
  11. data/admin/app/controllers/workarea/api/admin/categories_controller.rb +6 -0
  12. data/admin/app/controllers/workarea/api/admin/content_assets_controller.rb +6 -0
  13. data/admin/app/controllers/workarea/api/admin/content_controller.rb +6 -0
  14. data/admin/app/controllers/workarea/api/admin/discounts_controller.rb +7 -0
  15. data/admin/app/controllers/workarea/api/admin/email_signups_controller.rb +20 -4
  16. data/admin/app/controllers/workarea/api/admin/fulfillments_controller.rb +6 -1
  17. data/admin/app/controllers/workarea/api/admin/inventory_skus_controller.rb +7 -0
  18. data/admin/app/controllers/workarea/api/admin/navigation_menus_controller.rb +7 -0
  19. data/admin/app/controllers/workarea/api/admin/navigation_taxons_controller.rb +7 -0
  20. data/admin/app/controllers/workarea/api/admin/orders_controller.rb +19 -1
  21. data/admin/app/controllers/workarea/api/admin/pages_controller.rb +7 -0
  22. data/admin/app/controllers/workarea/api/admin/payment_profiles_controller.rb +7 -0
  23. data/admin/app/controllers/workarea/api/admin/payment_transactions_controller.rb +7 -0
  24. data/admin/app/controllers/workarea/api/admin/payments_controller.rb +7 -0
  25. data/admin/app/controllers/workarea/api/admin/pricing_skus_controller.rb +7 -0
  26. data/admin/app/controllers/workarea/api/admin/products_controller.rb +11 -4
  27. data/admin/app/controllers/workarea/api/admin/promo_code_lists_controller.rb +7 -0
  28. data/admin/app/controllers/workarea/api/admin/redirects_controller.rb +7 -0
  29. data/admin/app/controllers/workarea/api/admin/releases_controller.rb +7 -0
  30. data/admin/app/controllers/workarea/api/admin/shipping_services_controller.rb +7 -0
  31. data/admin/app/controllers/workarea/api/admin/shippings_controller.rb +7 -0
  32. data/admin/app/controllers/workarea/api/admin/swagger_controller.rb +33 -0
  33. data/admin/app/controllers/workarea/api/admin/tax_categories_controller.rb +2 -0
  34. data/admin/app/controllers/workarea/api/admin/users_controller.rb +28 -14
  35. data/admin/app/models/workarea/api/admin/date_filtering.rb +27 -0
  36. data/admin/lib/workarea/api/admin/engine.rb +11 -0
  37. data/admin/test/documentation/workarea/api/admin/email_signups_documentation_test.rb +14 -2
  38. data/admin/test/documentation/workarea/api/admin/global_functionality_documentation_test.rb +140 -0
  39. data/admin/test/documentation/workarea/api/admin/orders_documentation_test.rb +13 -6
  40. data/admin/test/documentation/workarea/api/admin/users_documentation_test.rb +14 -2
  41. data/admin/test/dummy/config/initializers/session_store.rb +3 -1
  42. data/admin/test/integration/workarea/api/admin/categories_integration_test.rb +32 -0
  43. data/admin/test/integration/workarea/api/admin/content_assets_integration_test.rb +32 -0
  44. data/admin/test/integration/workarea/api/admin/content_integration_test.rb +32 -0
  45. data/admin/test/integration/workarea/api/admin/discounts_integration_test.rb +32 -0
  46. data/admin/test/integration/workarea/api/admin/email_signups_integration_test.rb +38 -1
  47. data/admin/test/integration/workarea/api/admin/fulfillments_integration_test.rb +22 -0
  48. data/admin/test/integration/workarea/api/admin/inventory_skus_integration_test.rb +32 -0
  49. data/admin/test/integration/workarea/api/admin/navigation_menus_integration_test.rb +32 -0
  50. data/admin/test/integration/workarea/api/admin/navigation_taxons_integration_test.rb +32 -0
  51. data/admin/test/integration/workarea/api/admin/orders_integration_test.rb +41 -2
  52. data/admin/test/integration/workarea/api/admin/pages_integration_test.rb +32 -0
  53. data/admin/test/integration/workarea/api/admin/payment_profiles_integration_test.rb +32 -0
  54. data/admin/test/integration/workarea/api/admin/payment_transactions_integration_test.rb +32 -0
  55. data/admin/test/integration/workarea/api/admin/payments_integration_test.rb +32 -0
  56. data/admin/test/integration/workarea/api/admin/pricing_skus_integration_test.rb +32 -0
  57. data/admin/test/integration/workarea/api/admin/products_integration_test.rb +35 -0
  58. data/admin/test/integration/workarea/api/admin/promo_code_lists_integration_test.rb +31 -0
  59. data/admin/test/integration/workarea/api/admin/redirects_integration_test.rb +31 -0
  60. data/admin/test/integration/workarea/api/admin/releases_integration_test.rb +31 -0
  61. data/admin/test/integration/workarea/api/admin/shipping_services_integration_test.rb +31 -0
  62. data/admin/test/integration/workarea/api/admin/shippings_integration_test.rb +31 -0
  63. data/admin/test/integration/workarea/api/admin/tax_categories_integration_test.rb +31 -0
  64. data/admin/test/integration/workarea/api/admin/users_integration_test.rb +44 -1
  65. data/app/views/workarea/api/docs/nav.haml +12 -0
  66. data/doc/api/admin/categories/bulk_upserting_categories.json +8 -4
  67. data/doc/api/admin/categories/creating_a_category.json +11 -8
  68. data/doc/api/admin/categories/listing_categories.json +8 -5
  69. data/doc/api/admin/categories/removing_a_category.json +8 -4
  70. data/doc/api/admin/categories/showing_a_category.json +10 -7
  71. data/doc/api/admin/categories/updating_a_category.json +9 -5
  72. data/doc/api/admin/category_product_rules/creating_a_category_product_rule.json +11 -8
  73. data/doc/api/admin/category_product_rules/listing_category_product_rules.json +10 -7
  74. data/doc/api/admin/category_product_rules/removing_a_category_product_rule.json +8 -4
  75. data/doc/api/admin/category_product_rules/updating_a_category_product_rule.json +8 -4
  76. data/doc/api/admin/content/bulk_upserting_content.json +8 -4
  77. data/doc/api/admin/content/creating_content.json +11 -8
  78. data/doc/api/admin/content/listing_content.json +8 -5
  79. data/doc/api/admin/content/showing_content.json +10 -7
  80. data/doc/api/admin/content/updating_content.json +8 -4
  81. data/doc/api/admin/content_assets/bulk_upserting_content_assets.json +8 -4
  82. data/doc/api/admin/content_assets/creating_a_content_asset.json +11 -8
  83. data/doc/api/admin/content_assets/listing_content_assets.json +8 -5
  84. data/doc/api/admin/content_assets/removing_a_content_asset.json +8 -4
  85. data/doc/api/admin/content_assets/showing_a_content_asset.json +10 -7
  86. data/doc/api/admin/content_assets/updating_a_content_asset.json +9 -5
  87. data/doc/api/admin/discounts/creating_a_discount.json +11 -8
  88. data/doc/api/admin/discounts/listing_discounts.json +8 -5
  89. data/doc/api/admin/discounts/removing_a_discount.json +8 -4
  90. data/doc/api/admin/discounts/showing_a_discount.json +10 -7
  91. data/doc/api/admin/discounts/updating_discounts.json +8 -4
  92. data/doc/api/admin/email_signups/listing_email_signups.json +7 -4
  93. data/doc/api/admin/email_signups/showing_an_email_signup.json +10 -12
  94. data/doc/api/admin/fulfillment/listing_fulfillments.json +7 -4
  95. data/doc/api/admin/fulfillment/marking_items_as_canceled.json +9 -6
  96. data/doc/api/admin/fulfillment/marking_items_as_shipped.json +9 -6
  97. data/doc/api/admin/fulfillment/showing_fulfillment.json +7 -4
  98. data/doc/api/admin/index.json +653 -578
  99. data/doc/api/admin/inventory_skus/bulk_upserting_inventory_skus.json +8 -4
  100. data/doc/api/admin/inventory_skus/creating_an_inventory_sku.json +9 -6
  101. data/doc/api/admin/inventory_skus/listing_inventory_skus.json +7 -4
  102. data/doc/api/admin/inventory_skus/removing_an_inventory_sku.json +6 -2
  103. data/doc/api/admin/inventory_skus/showing_an_inventory_sku.json +7 -4
  104. data/doc/api/admin/inventory_skus/updating_an_inventory_sku.json +6 -2
  105. data/doc/api/admin/navigation_menus/creating_a_menu.json +11 -8
  106. data/doc/api/admin/navigation_menus/listing_menus.json +8 -5
  107. data/doc/api/admin/navigation_menus/removing_a_navigation_menu.json +8 -4
  108. data/doc/api/admin/navigation_menus/showing_a_navigation_menu.json +10 -7
  109. data/doc/api/admin/navigation_menus/updating_a_navigation_menus.json +8 -4
  110. data/doc/api/admin/navigation_taxonomy/bulk_upserting_navigation_taxons.json +8 -4
  111. data/doc/api/admin/navigation_taxonomy/creating_a_taxon.json +10 -7
  112. data/doc/api/admin/navigation_taxonomy/listing_taxons.json +7 -4
  113. data/doc/api/admin/navigation_taxonomy/removing_a_navigation_taxon.json +8 -4
  114. data/doc/api/admin/navigation_taxonomy/showing_a_navigation_taxon.json +9 -6
  115. data/doc/api/admin/navigation_taxonomy/updating_a_navigation_taxons.json +8 -4
  116. data/doc/api/admin/orders/listing_orders.json +8 -5
  117. data/doc/api/admin/orders/showing_an_order.json +8 -5
  118. data/doc/api/admin/pages/bulk_upserting_pages.json +8 -4
  119. data/doc/api/admin/pages/creating_a_page.json +11 -8
  120. data/doc/api/admin/pages/listing_pages.json +8 -5
  121. data/doc/api/admin/pages/removing_a_page.json +8 -4
  122. data/doc/api/admin/pages/showing_a_page.json +10 -7
  123. data/doc/api/admin/pages/updating_a_page.json +9 -5
  124. data/doc/api/admin/payment_profiles/bulk_upserting_payment_profiles.json +8 -4
  125. data/doc/api/admin/payment_profiles/creating_a_payment_profile.json +10 -7
  126. data/doc/api/admin/payment_profiles/listing_payment_profiles.json +7 -4
  127. data/doc/api/admin/payment_profiles/removing_a_payment_profile.json +8 -4
  128. data/doc/api/admin/payment_profiles/showing_a_payment_profile.json +9 -6
  129. data/doc/api/admin/payment_profiles/updating_a_payment_profiles.json +8 -4
  130. data/doc/api/admin/payment_transactions/listing_payment_transactions.json +7 -4
  131. data/doc/api/admin/payment_transactions/showing_a_payment_transaction.json +9 -6
  132. data/doc/api/admin/payments/listing_payments.json +7 -4
  133. data/doc/api/admin/payments/showing_an_payment.json +7 -4
  134. data/doc/api/admin/prices/creating_a_pricing_sku_price.json +8 -5
  135. data/doc/api/admin/prices/listing_pricing_sku_prices.json +8 -5
  136. data/doc/api/admin/prices/removing_a_pricing_sku_price.json +8 -4
  137. data/doc/api/admin/prices/updating_a_pricing_sku_price.json +8 -4
  138. data/doc/api/admin/pricing_skus/bulk_upserting_pricing_skus.json +8 -4
  139. data/doc/api/admin/pricing_skus/creating_an_pricing_sku.json +10 -7
  140. data/doc/api/admin/pricing_skus/listing_pricing_skus.json +8 -5
  141. data/doc/api/admin/pricing_skus/removing_an_pricing_sku.json +6 -2
  142. data/doc/api/admin/pricing_skus/showing_an_pricing_sku.json +8 -5
  143. data/doc/api/admin/pricing_skus/updating_an_pricing_sku.json +6 -2
  144. data/doc/api/admin/product_images/creating_a_product_image_from_base64.json +11 -8
  145. data/doc/api/admin/product_images/creating_a_product_image_from_url.json +11 -8
  146. data/doc/api/admin/product_images/listing_product_images.json +10 -7
  147. data/doc/api/admin/product_images/removing_a_product_image.json +8 -4
  148. data/doc/api/admin/product_images/updating_a_product_image.json +8 -4
  149. data/doc/api/admin/products/bulk_upserting_products.json +8 -4
  150. data/doc/api/admin/products/creating_a_product.json +11 -8
  151. data/doc/api/admin/products/listing_products.json +8 -5
  152. data/doc/api/admin/products/removing_a_product.json +8 -4
  153. data/doc/api/admin/products/showing_a_product.json +10 -7
  154. data/doc/api/admin/products/updating_a_product.json +9 -5
  155. data/doc/api/admin/promo_code_lists/bulk_upserting_promo_code_lists.json +8 -4
  156. data/doc/api/admin/promo_code_lists/creating_a_promo_code_list.json +10 -7
  157. data/doc/api/admin/promo_code_lists/listing_promo_code_lists.json +7 -4
  158. data/doc/api/admin/promo_code_lists/removing_a_promo_code_list.json +8 -4
  159. data/doc/api/admin/promo_code_lists/showing_a_promo_code_list.json +9 -6
  160. data/doc/api/admin/promo_code_lists/updating_a_promo_code_list.json +8 -4
  161. data/doc/api/admin/recommendation_settings/showing_recommendation_settings.json +9 -6
  162. data/doc/api/admin/recommendation_settings/updating_recommendation_settings.json +8 -4
  163. data/doc/api/admin/redirects/bulk_upserting_redirects.json +8 -4
  164. data/doc/api/admin/redirects/creating_a_redirect.json +10 -7
  165. data/doc/api/admin/redirects/listing_redirects.json +7 -4
  166. data/doc/api/admin/redirects/removing_a_redirect.json +8 -4
  167. data/doc/api/admin/redirects/showing_a_redirect.json +9 -6
  168. data/doc/api/admin/redirects/updating_a_redirects.json +8 -4
  169. data/doc/api/admin/release_changes/adding_changes_to_a_release.json +10 -6
  170. data/doc/api/admin/releases/bulk_upserting_releases.json +8 -4
  171. data/doc/api/admin/releases/creating_a_release.json +11 -8
  172. data/doc/api/admin/releases/listing_releases.json +8 -5
  173. data/doc/api/admin/releases/removing_a_release.json +8 -4
  174. data/doc/api/admin/releases/showing_a_release.json +10 -7
  175. data/doc/api/admin/releases/updating_a_release.json +9 -5
  176. data/doc/api/admin/saved_addresses/creating_a_saved_address.json +10 -7
  177. data/doc/api/admin/saved_addresses/listing_saved_address.json +9 -6
  178. data/doc/api/admin/saved_addresses/removing_a_saved_address.json +8 -4
  179. data/doc/api/admin/saved_addresses/updating_a_saved_address.json +8 -4
  180. data/doc/api/admin/saved_credit_cards/creating_a_saved_credit_card.json +11 -8
  181. data/doc/api/admin/saved_credit_cards/listing_saved_credit_cards.json +9 -6
  182. data/doc/api/admin/saved_credit_cards/removing_a_saved_credit_card.json +8 -4
  183. data/doc/api/admin/saved_credit_cards/updating_a_saved_credit_card.json +8 -4
  184. data/doc/api/admin/shipping/listing_shipments.json +7 -4
  185. data/doc/api/admin/shipping/showing_a_shipment.json +9 -6
  186. data/doc/api/admin/shipping_rates/creating_a_shipping_rate.json +10 -7
  187. data/doc/api/admin/shipping_rates/listing_shipping_rates.json +9 -6
  188. data/doc/api/admin/shipping_rates/removing_a_shipping_rate.json +8 -4
  189. data/doc/api/admin/shipping_rates/updating_a_shipping_rate.json +8 -4
  190. data/doc/api/admin/shipping_services/bulk_upserting_shipping_services.json +8 -4
  191. data/doc/api/admin/shipping_services/creating_a_shipping_service.json +10 -7
  192. data/doc/api/admin/shipping_services/listing_shipping_services.json +7 -4
  193. data/doc/api/admin/shipping_services/removing_a_shipping_service.json +8 -4
  194. data/doc/api/admin/shipping_services/showing_a_shipping_service.json +9 -6
  195. data/doc/api/admin/shipping_services/updating_a_shipping_service.json +9 -5
  196. data/doc/api/admin/tax_categories/bulk_upserting_tax_categories.json +8 -4
  197. data/doc/api/admin/tax_categories/creating_a_tax_category.json +10 -7
  198. data/doc/api/admin/tax_categories/listing_tax_categories.json +7 -4
  199. data/doc/api/admin/tax_categories/removing_a_tax_category.json +8 -4
  200. data/doc/api/admin/tax_categories/showing_a_tax_category.json +9 -6
  201. data/doc/api/admin/tax_categories/updating_a_tax_categories.json +8 -4
  202. data/doc/api/admin/tax_rates/creating_a_tax_rate.json +12 -9
  203. data/doc/api/admin/tax_rates/listing_tax_rates.json +10 -7
  204. data/doc/api/admin/tax_rates/removing_a_tax_rate.json +8 -4
  205. data/doc/api/admin/tax_rates/updating_a_tax_rate.json +8 -4
  206. data/doc/api/admin/users/bulk_upserting_users.json +8 -4
  207. data/doc/api/admin/users/creating_a_user.json +11 -8
  208. data/doc/api/admin/users/listing_users.json +8 -5
  209. data/doc/api/admin/users/removing_a_user.json +8 -4
  210. data/doc/api/admin/users/showing_a_user.json +10 -12
  211. data/doc/api/admin/users/updating_a_user.json +9 -5
  212. data/doc/api/admin/variants/creating_a_product_variant.json +11 -8
  213. data/doc/api/admin/variants/listing_product_variants.json +10 -7
  214. data/doc/api/admin/variants/removing_a_product_variant.json +8 -4
  215. data/doc/api/admin/variants/updating_a_product_variant.json +8 -4
  216. data/doc/api/storefront/accounts/creating_an_account.json +8 -7
  217. data/doc/api/storefront/accounts/getting_account_details.json +9 -8
  218. data/doc/api/storefront/accounts/updating_an_account.json +9 -8
  219. data/doc/api/storefront/analytics/saving_a_category_view.json +19 -6
  220. data/doc/api/storefront/analytics/saving_a_product_view.json +19 -6
  221. data/doc/api/storefront/analytics/saving_a_search.json +19 -6
  222. data/doc/api/storefront/assets/showing_an_asset.json +10 -9
  223. data/doc/api/storefront/authentication/creating_an_authentication_token.json +10 -9
  224. data/doc/api/storefront/authentication/refreshing_an_authentication_token.json +10 -9
  225. data/doc/api/storefront/authentication/using_an_authentication_token.json +11 -10
  226. data/doc/api/storefront/cart/adding_a_promo_code.json +11 -10
  227. data/doc/api/storefront/cart/adding_an_item.json +11 -10
  228. data/doc/api/storefront/cart/creating_a_new_cart_for_a_user.json +10 -9
  229. data/doc/api/storefront/cart/creating_a_new_guest_cart.json +8 -7
  230. data/doc/api/storefront/cart/delete_an_item.json +11 -10
  231. data/doc/api/storefront/cart/listing_user_s_carts.json +10 -9
  232. data/doc/api/storefront/cart/showing_cart.json +11 -10
  233. data/doc/api/storefront/cart/updating_an_item.json +11 -10
  234. data/doc/api/storefront/categories/showing_a_category.json +9 -8
  235. data/doc/api/storefront/categories/showing_a_listing_of_categories.json +9 -8
  236. data/doc/api/storefront/checkout/completing_a_checkout.json +10 -9
  237. data/doc/api/storefront/checkout/showing_a_checkout.json +11 -10
  238. data/doc/api/storefront/checkout/updating_a_checkout.json +10 -9
  239. data/doc/api/storefront/contacts/creating_a_contact.json +8 -7
  240. data/doc/api/storefront/email_signups/creating_an_email_signup.json +8 -7
  241. data/doc/api/storefront/email_signups/showing_an_email_signup_content.json +8 -7
  242. data/doc/api/storefront/index.json +263 -258
  243. data/doc/api/storefront/menus/listing_menus.json +9 -8
  244. data/doc/api/storefront/menus/showing_a_menu.json +11 -10
  245. data/doc/api/storefront/orders/listing_the_user_s_orders.json +10 -9
  246. data/doc/api/storefront/orders/showing_an_order.json +11 -10
  247. data/doc/api/storefront/pages/showing_a_page.json +9 -8
  248. data/doc/api/storefront/password_resets/sending_a_forgot_password_email.json +9 -7
  249. data/doc/api/storefront/personalized_recommendations/showing_recommendations_with_a_session_id.json +12 -12
  250. data/doc/api/storefront/personalized_recommendations/showing_recommendations_with_authentication.json +11 -10
  251. data/doc/api/storefront/products/showing_a_product.json +9 -8
  252. data/doc/api/storefront/products/showing_a_product_with_a_specific_sku_selected.json +9 -8
  253. data/doc/api/storefront/recent_views/showing_recent_views_from_authentication.json +11 -10
  254. data/doc/api/storefront/recent_views/showing_recent_views_with_a_session_id.json +12 -12
  255. data/doc/api/storefront/recent_views/updating_recent_views_with_a_session_id.json +7 -5
  256. data/doc/api/storefront/recent_views/updating_recent_views_with_authentication.json +9 -7
  257. data/doc/api/storefront/saved_addresses/creating_a_saved_address.json +8 -7
  258. data/doc/api/storefront/saved_addresses/deleting_a_saved_address.json +8 -6
  259. data/doc/api/storefront/saved_addresses/listing_the_user_s_saved_addresses.json +10 -9
  260. data/doc/api/storefront/saved_addresses/showing_a_saved_address.json +9 -8
  261. data/doc/api/storefront/saved_addresses/updating_a_saved_address.json +9 -8
  262. data/doc/api/storefront/saved_credit_cards/creating_a_saved_credit_card.json +8 -7
  263. data/doc/api/storefront/saved_credit_cards/deleting_a_saved_credit_card.json +8 -6
  264. data/doc/api/storefront/saved_credit_cards/listing_the_user_s_saved_credit_cards.json +10 -9
  265. data/doc/api/storefront/saved_credit_cards/showing_a_saved_credit_card.json +9 -8
  266. data/doc/api/storefront/saved_credit_cards/updating_a_saved_credit_card.json +9 -8
  267. data/doc/api/storefront/searches/showing_search_autocomplete_suggestions.json +10 -9
  268. data/doc/api/storefront/searches/showing_search_results.json +9 -8
  269. data/doc/api/storefront/segmentation/specifying_session_count_for_segmentation.json +93 -0
  270. data/doc/api/storefront/segmentation/using_session_ids_for_segmenting_non_authenticated_users.json +93 -0
  271. data/doc/api/storefront/system_content/showing_system_content.json +9 -8
  272. data/doc/api/storefront/system_content/showing_the_home_page.json +9 -8
  273. data/doc/api/storefront/taxons/showing_a_taxon.json +11 -10
  274. data/doc/api/storefront/validation_errors/checkout_validation_errors.json +10 -9
  275. data/doc/api/storefront/validation_errors/general_validation_errors.json +5 -4
  276. data/lib/workarea/api/documentation_test.rb +10 -1
  277. data/lib/workarea/api/version.rb +1 -1
  278. data/storefront/app/controllers/workarea/api/storefront/analytics_controller.rb +31 -19
  279. data/storefront/app/controllers/workarea/api/storefront/application_controller.rb +15 -2
  280. data/storefront/app/controllers/workarea/api/storefront/authentication.rb +6 -9
  281. data/storefront/app/controllers/workarea/api/storefront/categories_controller.rb +3 -1
  282. data/storefront/app/controllers/workarea/api/storefront/checkouts_controller.rb +0 -1
  283. data/storefront/app/controllers/workarea/api/storefront/menus_controller.rb +3 -1
  284. data/storefront/app/controllers/workarea/api/storefront/pages_controller.rb +3 -1
  285. data/storefront/app/controllers/workarea/api/storefront/products_controller.rb +3 -1
  286. data/storefront/app/controllers/workarea/api/storefront/recent_views_controller.rb +13 -26
  287. data/storefront/app/controllers/workarea/api/storefront/recommendations_controller.rb +2 -8
  288. data/storefront/app/controllers/workarea/api/storefront/searches_controller.rb +0 -12
  289. data/storefront/app/views/workarea/api/storefront/categories/show.json.jbuilder +1 -1
  290. data/storefront/app/views/workarea/api/storefront/email_signups/show.json.jbuilder +1 -1
  291. data/storefront/app/views/workarea/api/storefront/menus/_menu.json.jbuilder +1 -1
  292. data/storefront/app/views/workarea/api/storefront/pages/show.json.jbuilder +1 -1
  293. data/storefront/app/views/workarea/api/storefront/recent_views/show.json.jbuilder +0 -1
  294. data/storefront/app/views/workarea/api/storefront/searches/show.json.jbuilder +1 -1
  295. data/storefront/app/views/workarea/api/storefront/system_content/show.json.jbuilder +1 -1
  296. data/storefront/config/initializers/config.rb +19 -0
  297. data/storefront/lib/workarea/api/storefront/visit.decorator +52 -0
  298. data/storefront/lib/workarea/api/storefront.rb +1 -0
  299. data/storefront/test/documentation/workarea/api/storefront/segmentation_documentation_test.rb +104 -0
  300. data/storefront/test/dummy/config/initializers/session_store.rb +3 -1
  301. data/storefront/test/integration/workarea/api/storefront/analytics_integration_test.rb +12 -7
  302. data/storefront/test/integration/workarea/api/storefront/recent_views_integration_test.rb +38 -33
  303. data/storefront/test/integration/workarea/api/storefront/recommendations_integration_test.rb +1 -1
  304. data/storefront/test/integration/workarea/api/storefront/searches_integration_test.rb +0 -36
  305. data/storefront/test/integration/workarea/api/storefront/segments_integration_test.rb +218 -0
  306. metadata +18 -12
  307. data/doc/api/admin/orders/viewing_orders_by_date_range.json +0 -68
  308. data/doc/api/storefront/analytics/saving_a_search_abandonment.json +0 -38
  309. data/doc/api/storefront/analytics/saving_filters.json +0 -38
  310. data/storefront/app/controllers/workarea/api/storefront/user_activity.rb +0 -36
  311. data/storefront/app/view_models/workarea/api/storefront/search_suggestion_view_model.rb +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66487ef5fddeb4d49c9022e42da5c8863d2341c0d91cf06c96637738c600937e
4
- data.tar.gz: d992bf2d32386be22d01daaa7637faa7e1fb490928ed35e3853abe801f37d3e8
3
+ metadata.gz: 5584353b8ca153718a79703b771bb98357ce80ed97ad9f19cbac97e2f8a52b34
4
+ data.tar.gz: a2407e362c05759fcdffb851a9ddfaddbb4ca82a0050b0570d787a0d33b92d1a
5
5
  SHA512:
6
- metadata.gz: 738d90185757ce38e04eb3d714e7cce98378bc36f0b690b447f04a924a01d8f87e5cd9e0d8cc719d3e0bd9d639f7f3d0f454d92b8d649d8bab076f85d0c07cdc
7
- data.tar.gz: 004b8eabf9b402fac90f08938fd389d8fd44e934d9be8965ab0540895f3ea791e94465a3baa19186a2b318218ec3f7f5360ff7c3244979604319e79d5fe536a1
6
+ metadata.gz: ac7d25b8c4a440778558f0771f01c0654d43b0c6f6603731508714f210696c9ea8d9b2d167e8035c1d040c0c91d3c5467f4c686ee69bc96c71e0449fb2f65bf2
7
+ data.tar.gz: cde57b9ea75e2d16e856fb8734006b216e02e1b26320a7b4e30a8316d7f6e4cbd269c7c63120f01f33ad1e9b7f8d6c8c13b6bcb4cd2b2532287bccc239f12b14
data/.eslintrc.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "extends": "eslint:recommended",
3
+ "rules": {
4
+ "semi": ["error", "always"],
5
+ "eqeqeq": ["error", "always"]
6
+ },
7
+ "globals": {
8
+ "window": true,
9
+ "document": true,
10
+ "WORKAREA": true,
11
+ "$": true,
12
+ "jQuery": true,
13
+ "_": true,
14
+ "feature": true,
15
+ "JST": true,
16
+ "Turbolinks": true,
17
+ "I18n": true,
18
+ "Chart": true,
19
+ "Dropzone": true,
20
+ "strftime": true,
21
+ "Waypoint": true,
22
+ "wysihtml": true,
23
+ "LocalTime": true,
24
+ "describe": true,
25
+ "after": true,
26
+ "afterEach": true,
27
+ "before": true,
28
+ "beforeEach": true,
29
+ "it": true,
30
+ "expect": true,
31
+ "sinon": true,
32
+ "fixture": true,
33
+ "chai": true
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ name: CI
2
+ on: [push]
3
+
4
+ jobs:
5
+ static_analysis:
6
+ runs-on: ubuntu-latest
7
+ steps:
8
+ - uses: actions/checkout@v1
9
+ - uses: workarea-commerce/ci/bundler-audit@v1
10
+ - uses: workarea-commerce/ci/rubocop@v1
11
+ - uses: workarea-commerce/ci/eslint@v1
12
+ with:
13
+ args: '**/*.js'
14
+
15
+ admin_tests:
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v1
19
+ - uses: actions/setup-ruby@v1
20
+ with:
21
+ ruby-version: 2.6.x
22
+ - uses: workarea-commerce/ci/test@v1
23
+ with:
24
+ command: cd admin && bin/rails app:workarea:test
25
+
26
+ storefront_tests:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - uses: actions/checkout@v1
30
+ - uses: actions/setup-ruby@v1
31
+ with:
32
+ ruby-version: 2.6.x
33
+ - uses: workarea-commerce/ci/test@v1
34
+ with:
35
+ command: cd storefront && bin/rails app:workarea:test
data/.gitignore CHANGED
@@ -22,3 +22,4 @@ node_modules
22
22
  test/reports
23
23
  package.json
24
24
  yarn.lock
25
+ .rubocop-http*
data/.rubocop.yml ADDED
@@ -0,0 +1,2 @@
1
+ inherit_from:
2
+ - https://raw.githubusercontent.com/workarea-commerce/workarea/master/.rubocop.yml
data/.stylelintrc.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "stylelint-config-recommended-scss",
3
+ "rules": {
4
+ "block-no-empty": null,
5
+ "no-descending-specificity": null,
6
+ "property-no-unknown": [true, { "ignoreProperties": ["mso-hide"] }]
7
+ }
8
+ }
data/CHANGELOG.md CHANGED
@@ -1,25 +1,29 @@
1
- Workarea Api 4.4.6 (2019-08-21)
1
+ Workarea Api 4.5.0 (2019-11-26)
2
2
  --------------------------------------------------------------------------------
3
3
 
4
- * Open Source!
5
-
4
+ * Integrate segmentation into the storefront API
6
5
 
6
+ API-3
7
+ Ben Crouse
7
8
 
8
- Workarea Api 4.4.5 (2019-07-23)
9
- --------------------------------------------------------------------------------
9
+ * Documentation presentation improvements
10
10
 
11
- * Fix release task
11
+ * Alphabetize the navigation
12
+ * Allow markdown for explanations
13
+ Ben Crouse
12
14
 
13
- Curt Howard
15
+ * Remove search suggestions from storefront API
14
16
 
17
+ This has moved to a plugin, and will need to be implemented there.
18
+ Ben Crouse
15
19
 
20
+ * Replace Recommendation::UserActivity with Metrics::User
16
21
 
17
- Workarea Api 4.4.4 (2019-07-23)
18
- --------------------------------------------------------------------------------
22
+ Fixes Insight-Related Issues from v3.5.x
23
+ Curt Howard
19
24
 
20
- * Suppress Flash Message and Release Cookie headers from examples
25
+ * Initial commit on master
21
26
 
22
- API-226
23
27
  Curt Howard
24
28
 
25
29
 
data/Gemfile CHANGED
@@ -1,5 +1,5 @@
1
1
  source 'https://rubygems.org'
2
- git_source(:github) { |repo| "git@github.com:#{repo}.git" }
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
3
 
4
4
  # Declare your gem's dependencies in api.gemspec.
5
5
  # Bundler will treat runtime dependencies like base dependencies, and
@@ -18,4 +18,5 @@ gemspec
18
18
  gem 'workarea-api-admin', path: 'admin'
19
19
  gem 'workarea-api-storefront', path: 'storefront'
20
20
 
21
- gem 'workarea', '>= 3.4.0'
21
+ #gem 'workarea', '>= 3.4.0'
22
+ gem 'workarea', github: 'workarea-commerce/workarea'
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # Workarea API
2
+ [![CI Status](https://github.com/workarea-commerce/workarea-api/workflows/CI/badge.svg)](https://github.com/workarea-commerce/workarea-api/actions)
2
3
 
3
4
  **workarea-api** defines an HTTP API, using JSON as a data format, for
4
5
  programmatic access to your Workarea application. The Workarea API is
@@ -60,6 +61,18 @@ end
60
61
 
61
62
  That will allow clients to access your API at https://api.yourtotallyamazingstore.com
62
63
 
64
+ If you use a routing constraint for your API, be sure to add the
65
+ following to **test/test_helper.rb** in your application to use the
66
+ correct domain for API requests:
67
+
68
+ ```ruby
69
+ class Workarea::IntegrationTest
70
+ setup do
71
+ host! host.gsub(/www/, 'api') if self.class.name.include?('Api::')
72
+ end
73
+ end
74
+ ```
75
+
63
76
  ## Configuration
64
77
 
65
78
  This plugin provides a number of options for configuring its usage...
data/Rakefile CHANGED
@@ -5,11 +5,14 @@ rescue LoadError
5
5
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
6
  end
7
7
 
8
+ require 'rails'
9
+ require 'workarea/core'
8
10
  require 'rake/testtask'
9
11
  require 'date'
10
12
 
11
13
  load 'rails/test_unit/testing.rake'
12
14
  load 'workarea/changelog.rake'
15
+ load Workarea::Core::Engine.root.join('lib', 'tasks', 'services.rake')
13
16
 
14
17
  GEMS = %w(admin storefront).freeze
15
18
  ROOT_DIR = Dir.pwd
@@ -71,16 +74,22 @@ task :release do
71
74
  # Updating changelog
72
75
  #
73
76
  #
74
- #Rake::Task['workarea:changelog'].execute
75
- #system 'git add CHANGELOG.md'
76
- #system 'git commit -m "Update CHANGELOG"'
77
- #system 'git push origin HEAD'
77
+ Rake::Task['workarea:changelog'].execute
78
+ system 'git add CHANGELOG.md'
79
+ system 'git commit -m "Update CHANGELOG"'
80
+ system 'git push origin HEAD'
78
81
 
79
82
  #
80
83
  # Build documentation
81
84
  #
82
85
  #
83
- system 'GENERATE_API_DOCS=true bundle exec rake test && git add doc && git commit -am "Update documentation" && git push origin HEAD'
86
+ system <<~COMMAND
87
+ (cd admin && GENERATE_API_DOCS=true bin/rails test) &&
88
+ (cd storefront && GENERATE_API_DOCS=true bin/rails test) &&
89
+ git add docs/ &&
90
+ git commit -am "Update documentation" &&
91
+ git push origin HEAD
92
+ COMMAND
84
93
 
85
94
  #
86
95
  # Build gem files
@@ -35,6 +35,10 @@ module Workarea
35
35
  key :enum, %w(asc desc)
36
36
  key :default, 'desc'
37
37
  end
38
+ parameter :updated_at_starts_at
39
+ parameter :updated_at_ends_at
40
+ parameter :created_at_starts_at
41
+ parameter :created_at_ends_at
38
42
 
39
43
  response 200 do
40
44
  key :description, 'Categories'
@@ -97,6 +101,8 @@ module Workarea
97
101
  def index
98
102
  @categories = Catalog::Category
99
103
  .all
104
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
105
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
106
  .order_by(sort_field => sort_direction)
101
107
  .page(params[:page])
102
108
 
@@ -35,6 +35,10 @@ module Workarea
35
35
  key :enum, %w(asc desc)
36
36
  key :default, 'desc'
37
37
  end
38
+ parameter :updated_at_starts_at
39
+ parameter :updated_at_ends_at
40
+ parameter :created_at_starts_at
41
+ parameter :created_at_ends_at
38
42
 
39
43
  response 200 do
40
44
  key :description, 'Content assets'
@@ -97,6 +101,8 @@ module Workarea
97
101
  def index
98
102
  @assets = Content::Asset
99
103
  .all
104
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
105
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
106
  .order_by(sort_field => sort_direction)
101
107
  .page(params[:page])
102
108
 
@@ -35,6 +35,10 @@ module Workarea
35
35
  key :enum, %w(asc desc)
36
36
  key :default, 'desc'
37
37
  end
38
+ parameter :updated_at_starts_at
39
+ parameter :updated_at_ends_at
40
+ parameter :created_at_starts_at
41
+ parameter :created_at_ends_at
38
42
 
39
43
  response 200 do
40
44
  key :description, 'Content'
@@ -97,6 +101,8 @@ module Workarea
97
101
  def index
98
102
  @content = Content
99
103
  .all
104
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
105
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
106
  .order_by(sort_field => sort_direction)
101
107
  .page(params[:page])
102
108
 
@@ -36,6 +36,11 @@ module Workarea
36
36
  key :default, 'desc'
37
37
  end
38
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
39
44
  response 200 do
40
45
  key :description, 'Discounts'
41
46
  schema do
@@ -97,6 +102,8 @@ module Workarea
97
102
  def index
98
103
  @discounts = Pricing::Discount
99
104
  .all
105
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
106
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
107
  .order_by(sort_field => sort_direction)
101
108
  .page(params[:page])
102
109
 
@@ -2,6 +2,8 @@ module Workarea
2
2
  module Api
3
3
  module Admin
4
4
  class EmailSignupsController < Admin::ApplicationController
5
+ before_action :find_email_signup, only: :show
6
+
5
7
  swagger_path '/email_signups' do
6
8
  operation :get do
7
9
  key :summary, 'All Email Signups'
@@ -34,6 +36,11 @@ module Workarea
34
36
  key :default, 'desc'
35
37
  end
36
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
37
44
  response 200 do
38
45
  key :description, 'Email Signups'
39
46
  schema do
@@ -52,22 +59,24 @@ module Workarea
52
59
  def index
53
60
  @email_signups = Email::Signup
54
61
  .all
62
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
63
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
55
64
  .order_by(sort_field => sort_direction)
56
65
  .page(params[:page])
57
66
 
58
67
  respond_with email_signups: @email_signups
59
68
  end
60
69
 
61
- swagger_path '/email_signups/{id}' do
70
+ swagger_path '/email_signups/{id_or_email}' do
62
71
  operation :get do
63
- key :summary, 'Find Email Signup by ID'
72
+ key :summary, 'Find Email Signup by ID or Email Address'
64
73
  key :description, 'Returns a single email signup'
65
74
  key :operationId, 'showEmailSignup'
66
75
 
67
76
  parameter do
68
77
  key :name, :id
69
78
  key :in, :path
70
- key :description, 'ID of email signup to fetch'
79
+ key :description, 'ID or URI escaped email of email signup to fetch'
71
80
  key :required, true
72
81
  key :type, :string
73
82
  end
@@ -99,9 +108,16 @@ module Workarea
99
108
  end
100
109
 
101
110
  def show
102
- @email_signup = Email::Signup.find(params[:id])
103
111
  respond_with email_signup: @email_signup
104
112
  end
113
+
114
+ private
115
+
116
+ def find_email_signup
117
+ @email_signup = Email::Signup.find(params[:id])
118
+ rescue Mongoid::Errors::DocumentNotFound
119
+ @email_signup = Email::Signup.find_by(email: URI.unescape(params[:id]))
120
+ end
105
121
  end
106
122
  end
107
123
  end
@@ -36,6 +36,11 @@ module Workarea
36
36
  key :default, 'desc'
37
37
  end
38
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
39
44
  response 200 do
40
45
  key :description, 'Fulfillments'
41
46
  schema do
@@ -54,9 +59,9 @@ module Workarea
54
59
  def index
55
60
  @fulfillments = Fulfillment
56
61
  .all
62
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
57
63
  .order_by(sort_field => sort_direction)
58
64
  .page(params[:page])
59
-
60
65
  respond_with fulfillments: @fulfillments
61
66
  end
62
67
 
@@ -36,6 +36,11 @@ module Workarea
36
36
  key :default, 'desc'
37
37
  end
38
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
39
44
  response 200 do
40
45
  key :description, 'Inventory SKUs'
41
46
  schema do
@@ -97,6 +102,8 @@ module Workarea
97
102
  def index
98
103
  @inventory_skus = Inventory::Sku
99
104
  .all
105
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
106
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
107
  .order_by(sort_field => sort_direction)
101
108
  .page(params[:page])
102
109
 
@@ -36,6 +36,11 @@ module Workarea
36
36
  key :default, 'desc'
37
37
  end
38
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
39
44
  response 200 do
40
45
  key :description, 'Navigation Menus'
41
46
  schema do
@@ -97,6 +102,8 @@ module Workarea
97
102
  def index
98
103
  @navigation_menus = Navigation::Menu
99
104
  .all
105
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
106
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
107
  .order_by(sort_field => sort_direction)
101
108
  .page(params[:page])
102
109
 
@@ -36,6 +36,11 @@ module Workarea
36
36
  key :default, 'desc'
37
37
  end
38
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
39
44
  response 200 do
40
45
  key :description, 'Navigation taxons'
41
46
  schema do
@@ -97,6 +102,8 @@ module Workarea
97
102
  def index
98
103
  @navigation_taxons = Navigation::Taxon
99
104
  .all
105
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
106
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
107
  .order_by(sort_field => sort_direction)
101
108
  .page(params[:page])
102
109
 
@@ -47,6 +47,18 @@ module Workarea
47
47
  key :type, :string
48
48
  key :format, 'date-time'
49
49
  end
50
+ parameter do
51
+ key :name, :email
52
+ key :in, :query
53
+ key :description, 'Email address associated to the orders'
54
+ key :required, false
55
+ key :type, :integer
56
+ end
57
+
58
+ parameter :updated_at_starts_at
59
+ parameter :updated_at_ends_at
60
+ parameter :created_at_starts_at
61
+ parameter :created_at_ends_at
50
62
 
51
63
  response 200 do
52
64
  key :description, 'Orders'
@@ -66,6 +78,10 @@ module Workarea
66
78
  def index
67
79
  criteria = Order.all
68
80
 
81
+ if params[:email].present?
82
+ criteria = criteria.where(email: params[:email])
83
+ end
84
+
69
85
  if params[:placed_at_greater_than].present?
70
86
  # TODO Workarea v4, rename to placed_at_starts_at
71
87
  criteria = criteria.where(:placed_at.gte => params[:placed_at_greater_than])
@@ -73,11 +89,13 @@ module Workarea
73
89
 
74
90
  if params[:placed_at_less_than].present?
75
91
  # TODO Workarea v4, rename to placed_at_ends_at
76
- criteria = criteria.where(:placed_at.lt => params[:placed_at_less_than])
92
+ criteria = criteria.where(:placed_at.lte => params[:placed_at_less_than])
77
93
  end
78
94
 
79
95
  @orders =
80
96
  criteria
97
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
98
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
81
99
  .order_by(sort_field => sort_direction)
82
100
  .page(params[:page].presence || 1)
83
101
 
@@ -36,6 +36,11 @@ module Workarea
36
36
  key :default, 'desc'
37
37
  end
38
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
39
44
  response 200 do
40
45
  key :description, 'Pages'
41
46
  schema do
@@ -97,6 +102,8 @@ module Workarea
97
102
  def index
98
103
  @pages = Content::Page
99
104
  .all
105
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
106
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
107
  .order_by(sort_field => sort_direction)
101
108
  .page(params[:page])
102
109
 
@@ -36,6 +36,11 @@ module Workarea
36
36
  key :default, 'desc'
37
37
  end
38
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
39
44
  response 200 do
40
45
  key :description, 'Payment profiles'
41
46
  schema do
@@ -97,6 +102,8 @@ module Workarea
97
102
  def index
98
103
  @payment_profiles = Payment::Profile
99
104
  .all
105
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
106
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
107
  .order_by(sort_field => sort_direction)
101
108
  .page(params[:page])
102
109
 
@@ -34,6 +34,11 @@ module Workarea
34
34
  key :default, 'desc'
35
35
  end
36
36
 
37
+ parameter :updated_at_starts_at
38
+ parameter :updated_at_ends_at
39
+ parameter :created_at_starts_at
40
+ parameter :created_at_ends_at
41
+
37
42
  response 200 do
38
43
  key :description, 'Payment transactions'
39
44
  schema do
@@ -52,6 +57,8 @@ module Workarea
52
57
  def index
53
58
  @transactions = Payment::Transaction
54
59
  .all
60
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
61
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
55
62
  .order_by(sort_field => sort_direction)
56
63
  .page(params[:page])
57
64
 
@@ -34,6 +34,11 @@ module Workarea
34
34
  key :default, 'desc'
35
35
  end
36
36
 
37
+ parameter :updated_at_starts_at
38
+ parameter :updated_at_ends_at
39
+ parameter :created_at_starts_at
40
+ parameter :created_at_ends_at
41
+
37
42
  response 200 do
38
43
  key :description, 'Payments'
39
44
  schema do
@@ -52,6 +57,8 @@ module Workarea
52
57
  def index
53
58
  @payments = Payment
54
59
  .all
60
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
61
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
55
62
  .order_by(sort_field => sort_direction)
56
63
  .page(params[:page])
57
64
 
@@ -36,6 +36,11 @@ module Workarea
36
36
  key :default, 'desc'
37
37
  end
38
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
39
44
  response 200 do
40
45
  key :description, 'Pricing SKUs'
41
46
  schema do
@@ -97,6 +102,8 @@ module Workarea
97
102
  def index
98
103
  @pricing_skus = Pricing::Sku
99
104
  .all
105
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
106
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
100
107
  .order_by(sort_field => sort_direction)
101
108
  .page(params[:page])
102
109
 
@@ -36,6 +36,11 @@ module Workarea
36
36
  key :default, 'desc'
37
37
  end
38
38
 
39
+ parameter :updated_at_starts_at
40
+ parameter :updated_at_ends_at
41
+ parameter :created_at_starts_at
42
+ parameter :created_at_ends_at
43
+
39
44
  response 200 do
40
45
  key :description, 'Products'
41
46
  schema do
@@ -95,10 +100,12 @@ module Workarea
95
100
  end
96
101
 
97
102
  def index
98
- @products = Catalog::Product
99
- .all
100
- .order_by(sort_field => sort_direction)
101
- .page(params[:page])
103
+ @products =
104
+ Catalog::Product.all
105
+ .by_updated_at(starts_at: params[:updated_at_starts_at], ends_at: params[:updated_at_ends_at])
106
+ .by_created_at(starts_at: params[:created_at_starts_at], ends_at: params[:created_at_ends_at])
107
+ .order_by(sort_field => sort_direction)
108
+ .page(params[:page])
102
109
 
103
110
  respond_with products: @products
104
111
  end