workarea-api 4.4.7 → 4.5.5

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 (330) 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 +97 -7
  8. data/Gemfile +1 -2
  9. data/README.md +14 -1
  10. data/Rakefile +18 -8
  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/recommendation_settings_controller.rb +1 -1
  29. data/admin/app/controllers/workarea/api/admin/redirects_controller.rb +7 -0
  30. data/admin/app/controllers/workarea/api/admin/releases_controller.rb +7 -0
  31. data/admin/app/controllers/workarea/api/admin/shipping_services_controller.rb +7 -0
  32. data/admin/app/controllers/workarea/api/admin/shippings_controller.rb +7 -0
  33. data/admin/app/controllers/workarea/api/admin/swagger_controller.rb +33 -0
  34. data/admin/app/controllers/workarea/api/admin/tax_categories_controller.rb +2 -0
  35. data/admin/app/controllers/workarea/api/admin/users_controller.rb +28 -14
  36. data/admin/app/models/workarea/api/admin/date_filtering.rb +27 -0
  37. data/admin/lib/workarea/api/admin/engine.rb +11 -0
  38. data/admin/test/documentation/workarea/api/admin/email_signups_documentation_test.rb +14 -2
  39. data/admin/test/documentation/workarea/api/admin/global_functionality_documentation_test.rb +140 -0
  40. data/admin/test/documentation/workarea/api/admin/orders_documentation_test.rb +13 -6
  41. data/admin/test/documentation/workarea/api/admin/users_documentation_test.rb +14 -2
  42. data/admin/test/dummy/config/initializers/session_store.rb +3 -1
  43. data/admin/test/integration/workarea/api/admin/categories_integration_test.rb +32 -0
  44. data/admin/test/integration/workarea/api/admin/content_assets_integration_test.rb +32 -0
  45. data/admin/test/integration/workarea/api/admin/content_integration_test.rb +32 -0
  46. data/admin/test/integration/workarea/api/admin/discounts_integration_test.rb +32 -0
  47. data/admin/test/integration/workarea/api/admin/email_signups_integration_test.rb +38 -1
  48. data/admin/test/integration/workarea/api/admin/fulfillments_integration_test.rb +22 -0
  49. data/admin/test/integration/workarea/api/admin/inventory_skus_integration_test.rb +32 -0
  50. data/admin/test/integration/workarea/api/admin/navigation_menus_integration_test.rb +32 -0
  51. data/admin/test/integration/workarea/api/admin/navigation_taxons_integration_test.rb +32 -0
  52. data/admin/test/integration/workarea/api/admin/orders_integration_test.rb +41 -2
  53. data/admin/test/integration/workarea/api/admin/pages_integration_test.rb +32 -0
  54. data/admin/test/integration/workarea/api/admin/payment_profiles_integration_test.rb +32 -0
  55. data/admin/test/integration/workarea/api/admin/payment_transactions_integration_test.rb +32 -0
  56. data/admin/test/integration/workarea/api/admin/payments_integration_test.rb +32 -0
  57. data/admin/test/integration/workarea/api/admin/pricing_skus_integration_test.rb +32 -0
  58. data/admin/test/integration/workarea/api/admin/products_integration_test.rb +35 -0
  59. data/admin/test/integration/workarea/api/admin/promo_code_lists_integration_test.rb +31 -0
  60. data/admin/test/integration/workarea/api/admin/recommendation_settings_integration_test.rb +14 -0
  61. data/admin/test/integration/workarea/api/admin/redirects_integration_test.rb +31 -0
  62. data/admin/test/integration/workarea/api/admin/releases_integration_test.rb +31 -0
  63. data/admin/test/integration/workarea/api/admin/shipping_services_integration_test.rb +31 -0
  64. data/admin/test/integration/workarea/api/admin/shippings_integration_test.rb +31 -0
  65. data/admin/test/integration/workarea/api/admin/tax_categories_integration_test.rb +31 -0
  66. data/admin/test/integration/workarea/api/admin/users_integration_test.rb +44 -1
  67. data/admin/workarea-api-admin.gemspec +2 -2
  68. data/app/views/workarea/api/docs/nav.haml +12 -0
  69. data/doc/api/admin/categories/bulk_upserting_categories.json +8 -4
  70. data/doc/api/admin/categories/creating_a_category.json +11 -8
  71. data/doc/api/admin/categories/listing_categories.json +8 -5
  72. data/doc/api/admin/categories/removing_a_category.json +8 -4
  73. data/doc/api/admin/categories/showing_a_category.json +10 -7
  74. data/doc/api/admin/categories/updating_a_category.json +9 -5
  75. data/doc/api/admin/category_product_rules/creating_a_category_product_rule.json +11 -8
  76. data/doc/api/admin/category_product_rules/listing_category_product_rules.json +10 -7
  77. data/doc/api/admin/category_product_rules/removing_a_category_product_rule.json +8 -4
  78. data/doc/api/admin/category_product_rules/updating_a_category_product_rule.json +8 -4
  79. data/doc/api/admin/content/bulk_upserting_content.json +8 -4
  80. data/doc/api/admin/content/creating_content.json +11 -8
  81. data/doc/api/admin/content/listing_content.json +8 -5
  82. data/doc/api/admin/content/showing_content.json +10 -7
  83. data/doc/api/admin/content/updating_content.json +8 -4
  84. data/doc/api/admin/content_assets/bulk_upserting_content_assets.json +8 -4
  85. data/doc/api/admin/content_assets/creating_a_content_asset.json +11 -8
  86. data/doc/api/admin/content_assets/listing_content_assets.json +8 -5
  87. data/doc/api/admin/content_assets/removing_a_content_asset.json +8 -4
  88. data/doc/api/admin/content_assets/showing_a_content_asset.json +10 -7
  89. data/doc/api/admin/content_assets/updating_a_content_asset.json +9 -5
  90. data/doc/api/admin/discounts/creating_a_discount.json +11 -8
  91. data/doc/api/admin/discounts/listing_discounts.json +8 -5
  92. data/doc/api/admin/discounts/removing_a_discount.json +8 -4
  93. data/doc/api/admin/discounts/showing_a_discount.json +10 -7
  94. data/doc/api/admin/discounts/updating_discounts.json +8 -4
  95. data/doc/api/admin/email_signups/listing_email_signups.json +7 -4
  96. data/doc/api/admin/email_signups/showing_an_email_signup.json +10 -12
  97. data/doc/api/admin/email_signups/showing_an_email_signup_by_email.json +47 -0
  98. data/doc/api/admin/email_signups/showing_an_email_signup_by_id.json +47 -0
  99. data/doc/api/admin/fulfillment/listing_fulfillments.json +7 -4
  100. data/doc/api/admin/fulfillment/marking_items_as_canceled.json +9 -6
  101. data/doc/api/admin/fulfillment/marking_items_as_shipped.json +9 -6
  102. data/doc/api/admin/fulfillment/showing_fulfillment.json +7 -4
  103. data/doc/api/admin/global_functionality/dealing_with_locales.json +86 -0
  104. data/doc/api/admin/global_functionality/filtering_by_created_at_time_stamp.json +56 -0
  105. data/doc/api/admin/global_functionality/filtering_by_updated_time_stamp.json +56 -0
  106. data/doc/api/admin/global_functionality/paging_results.json +51 -0
  107. data/doc/api/admin/global_functionality/retrieving_addtional_pages_of_results.json +51 -0
  108. data/doc/api/admin/global_functionality/sorting_results.json +56 -0
  109. data/doc/api/admin/index.json +653 -578
  110. data/doc/api/admin/inventory_skus/bulk_upserting_inventory_skus.json +8 -4
  111. data/doc/api/admin/inventory_skus/creating_an_inventory_sku.json +9 -6
  112. data/doc/api/admin/inventory_skus/listing_inventory_skus.json +7 -4
  113. data/doc/api/admin/inventory_skus/removing_an_inventory_sku.json +6 -2
  114. data/doc/api/admin/inventory_skus/showing_an_inventory_sku.json +7 -4
  115. data/doc/api/admin/inventory_skus/updating_an_inventory_sku.json +6 -2
  116. data/doc/api/admin/navigation_menus/creating_a_menu.json +11 -8
  117. data/doc/api/admin/navigation_menus/listing_menus.json +8 -5
  118. data/doc/api/admin/navigation_menus/removing_a_navigation_menu.json +8 -4
  119. data/doc/api/admin/navigation_menus/showing_a_navigation_menu.json +10 -7
  120. data/doc/api/admin/navigation_menus/updating_a_navigation_menus.json +8 -4
  121. data/doc/api/admin/navigation_taxonomy/bulk_upserting_navigation_taxons.json +8 -4
  122. data/doc/api/admin/navigation_taxonomy/creating_a_taxon.json +10 -7
  123. data/doc/api/admin/navigation_taxonomy/listing_taxons.json +7 -4
  124. data/doc/api/admin/navigation_taxonomy/removing_a_navigation_taxon.json +8 -4
  125. data/doc/api/admin/navigation_taxonomy/showing_a_navigation_taxon.json +9 -6
  126. data/doc/api/admin/navigation_taxonomy/updating_a_navigation_taxons.json +8 -4
  127. data/doc/api/admin/orders/listing_orders.json +8 -5
  128. data/doc/api/admin/orders/showing_an_order.json +8 -5
  129. data/doc/api/admin/orders/viewing_orders_by_date_range.json +17 -9
  130. data/doc/api/admin/pages/bulk_upserting_pages.json +8 -4
  131. data/doc/api/admin/pages/creating_a_page.json +11 -8
  132. data/doc/api/admin/pages/listing_pages.json +8 -5
  133. data/doc/api/admin/pages/removing_a_page.json +8 -4
  134. data/doc/api/admin/pages/showing_a_page.json +10 -7
  135. data/doc/api/admin/pages/updating_a_page.json +9 -5
  136. data/doc/api/admin/payment_profiles/bulk_upserting_payment_profiles.json +8 -4
  137. data/doc/api/admin/payment_profiles/creating_a_payment_profile.json +10 -7
  138. data/doc/api/admin/payment_profiles/listing_payment_profiles.json +7 -4
  139. data/doc/api/admin/payment_profiles/removing_a_payment_profile.json +8 -4
  140. data/doc/api/admin/payment_profiles/showing_a_payment_profile.json +9 -6
  141. data/doc/api/admin/payment_profiles/updating_a_payment_profiles.json +8 -4
  142. data/doc/api/admin/payment_transactions/listing_payment_transactions.json +7 -4
  143. data/doc/api/admin/payment_transactions/showing_a_payment_transaction.json +9 -6
  144. data/doc/api/admin/payments/listing_payments.json +7 -4
  145. data/doc/api/admin/payments/showing_an_payment.json +7 -4
  146. data/doc/api/admin/prices/creating_a_pricing_sku_price.json +8 -5
  147. data/doc/api/admin/prices/listing_pricing_sku_prices.json +8 -5
  148. data/doc/api/admin/prices/removing_a_pricing_sku_price.json +8 -4
  149. data/doc/api/admin/prices/updating_a_pricing_sku_price.json +8 -4
  150. data/doc/api/admin/pricing_skus/bulk_upserting_pricing_skus.json +8 -4
  151. data/doc/api/admin/pricing_skus/creating_an_pricing_sku.json +10 -7
  152. data/doc/api/admin/pricing_skus/listing_pricing_skus.json +8 -5
  153. data/doc/api/admin/pricing_skus/removing_an_pricing_sku.json +6 -2
  154. data/doc/api/admin/pricing_skus/showing_an_pricing_sku.json +8 -5
  155. data/doc/api/admin/pricing_skus/updating_an_pricing_sku.json +6 -2
  156. data/doc/api/admin/product_images/creating_a_product_image_from_base64.json +11 -8
  157. data/doc/api/admin/product_images/creating_a_product_image_from_url.json +11 -8
  158. data/doc/api/admin/product_images/listing_product_images.json +10 -7
  159. data/doc/api/admin/product_images/removing_a_product_image.json +8 -4
  160. data/doc/api/admin/product_images/updating_a_product_image.json +8 -4
  161. data/doc/api/admin/products/bulk_upserting_products.json +8 -4
  162. data/doc/api/admin/products/creating_a_product.json +11 -8
  163. data/doc/api/admin/products/listing_products.json +8 -5
  164. data/doc/api/admin/products/removing_a_product.json +8 -4
  165. data/doc/api/admin/products/showing_a_product.json +10 -7
  166. data/doc/api/admin/products/updating_a_product.json +9 -5
  167. data/doc/api/admin/promo_code_lists/bulk_upserting_promo_code_lists.json +8 -4
  168. data/doc/api/admin/promo_code_lists/creating_a_promo_code_list.json +10 -7
  169. data/doc/api/admin/promo_code_lists/listing_promo_code_lists.json +7 -4
  170. data/doc/api/admin/promo_code_lists/removing_a_promo_code_list.json +8 -4
  171. data/doc/api/admin/promo_code_lists/showing_a_promo_code_list.json +9 -6
  172. data/doc/api/admin/promo_code_lists/updating_a_promo_code_list.json +8 -4
  173. data/doc/api/admin/recommendation_settings/showing_recommendation_settings.json +9 -6
  174. data/doc/api/admin/recommendation_settings/updating_recommendation_settings.json +8 -4
  175. data/doc/api/admin/redirects/bulk_upserting_redirects.json +8 -4
  176. data/doc/api/admin/redirects/creating_a_redirect.json +10 -7
  177. data/doc/api/admin/redirects/listing_redirects.json +7 -4
  178. data/doc/api/admin/redirects/removing_a_redirect.json +8 -4
  179. data/doc/api/admin/redirects/showing_a_redirect.json +9 -6
  180. data/doc/api/admin/redirects/updating_a_redirects.json +8 -4
  181. data/doc/api/admin/release_changes/adding_changes_to_a_release.json +10 -6
  182. data/doc/api/admin/releases/bulk_upserting_releases.json +8 -4
  183. data/doc/api/admin/releases/creating_a_release.json +11 -8
  184. data/doc/api/admin/releases/listing_releases.json +8 -5
  185. data/doc/api/admin/releases/removing_a_release.json +8 -4
  186. data/doc/api/admin/releases/showing_a_release.json +10 -7
  187. data/doc/api/admin/releases/updating_a_release.json +9 -5
  188. data/doc/api/admin/saved_addresses/creating_a_saved_address.json +10 -7
  189. data/doc/api/admin/saved_addresses/listing_saved_address.json +9 -6
  190. data/doc/api/admin/saved_addresses/removing_a_saved_address.json +8 -4
  191. data/doc/api/admin/saved_addresses/updating_a_saved_address.json +8 -4
  192. data/doc/api/admin/saved_credit_cards/creating_a_saved_credit_card.json +11 -8
  193. data/doc/api/admin/saved_credit_cards/listing_saved_credit_cards.json +9 -6
  194. data/doc/api/admin/saved_credit_cards/removing_a_saved_credit_card.json +8 -4
  195. data/doc/api/admin/saved_credit_cards/updating_a_saved_credit_card.json +8 -4
  196. data/doc/api/admin/shipping/listing_shipments.json +7 -4
  197. data/doc/api/admin/shipping/showing_a_shipment.json +9 -6
  198. data/doc/api/admin/shipping_rates/creating_a_shipping_rate.json +10 -7
  199. data/doc/api/admin/shipping_rates/listing_shipping_rates.json +9 -6
  200. data/doc/api/admin/shipping_rates/removing_a_shipping_rate.json +8 -4
  201. data/doc/api/admin/shipping_rates/updating_a_shipping_rate.json +8 -4
  202. data/doc/api/admin/shipping_services/bulk_upserting_shipping_services.json +8 -4
  203. data/doc/api/admin/shipping_services/creating_a_shipping_service.json +10 -7
  204. data/doc/api/admin/shipping_services/listing_shipping_services.json +7 -4
  205. data/doc/api/admin/shipping_services/removing_a_shipping_service.json +8 -4
  206. data/doc/api/admin/shipping_services/showing_a_shipping_service.json +10 -7
  207. data/doc/api/admin/shipping_services/updating_a_shipping_service.json +9 -5
  208. data/doc/api/admin/tax_categories/bulk_upserting_tax_categories.json +8 -4
  209. data/doc/api/admin/tax_categories/creating_a_tax_category.json +10 -7
  210. data/doc/api/admin/tax_categories/listing_tax_categories.json +8 -5
  211. data/doc/api/admin/tax_categories/removing_a_tax_category.json +8 -4
  212. data/doc/api/admin/tax_categories/showing_a_tax_category.json +10 -7
  213. data/doc/api/admin/tax_categories/updating_a_tax_categories.json +8 -4
  214. data/doc/api/admin/tax_rates/creating_a_tax_rate.json +12 -9
  215. data/doc/api/admin/tax_rates/listing_tax_rates.json +10 -7
  216. data/doc/api/admin/tax_rates/removing_a_tax_rate.json +8 -4
  217. data/doc/api/admin/tax_rates/updating_a_tax_rate.json +8 -4
  218. data/doc/api/admin/users/bulk_upserting_users.json +8 -4
  219. data/doc/api/admin/users/creating_a_user.json +11 -8
  220. data/doc/api/admin/users/listing_users.json +8 -5
  221. data/doc/api/admin/users/removing_a_user.json +8 -4
  222. data/doc/api/admin/users/showing_a_user.json +10 -12
  223. data/doc/api/admin/users/showing_a_user_by_email.json +47 -0
  224. data/doc/api/admin/users/showing_a_user_by_id.json +47 -0
  225. data/doc/api/admin/users/updating_a_user.json +9 -5
  226. data/doc/api/admin/variants/creating_a_product_variant.json +11 -8
  227. data/doc/api/admin/variants/listing_product_variants.json +10 -7
  228. data/doc/api/admin/variants/removing_a_product_variant.json +8 -4
  229. data/doc/api/admin/variants/updating_a_product_variant.json +8 -4
  230. data/doc/api/storefront/accounts/creating_an_account.json +8 -7
  231. data/doc/api/storefront/accounts/getting_account_details.json +9 -8
  232. data/doc/api/storefront/accounts/updating_an_account.json +9 -8
  233. data/doc/api/storefront/analytics/saving_a_category_view.json +19 -6
  234. data/doc/api/storefront/analytics/saving_a_product_view.json +19 -6
  235. data/doc/api/storefront/analytics/saving_a_search.json +19 -6
  236. data/doc/api/storefront/assets/showing_an_asset.json +10 -9
  237. data/doc/api/storefront/authentication/creating_an_authentication_token.json +10 -9
  238. data/doc/api/storefront/authentication/refreshing_an_authentication_token.json +10 -9
  239. data/doc/api/storefront/authentication/using_an_authentication_token.json +11 -10
  240. data/doc/api/storefront/cart/adding_a_promo_code.json +11 -10
  241. data/doc/api/storefront/cart/adding_an_item.json +11 -10
  242. data/doc/api/storefront/cart/creating_a_new_cart_for_a_user.json +10 -9
  243. data/doc/api/storefront/cart/creating_a_new_guest_cart.json +8 -7
  244. data/doc/api/storefront/cart/delete_an_item.json +11 -10
  245. data/doc/api/storefront/cart/listing_user_s_carts.json +10 -9
  246. data/doc/api/storefront/cart/showing_cart.json +11 -10
  247. data/doc/api/storefront/cart/updating_an_item.json +11 -10
  248. data/doc/api/storefront/categories/showing_a_category.json +9 -8
  249. data/doc/api/storefront/categories/showing_a_listing_of_categories.json +9 -8
  250. data/doc/api/storefront/checkout/completing_a_checkout.json +11 -10
  251. data/doc/api/storefront/checkout/failure_to_update_a_checkout.json +52 -0
  252. data/doc/api/storefront/checkout/showing_a_checkout.json +11 -10
  253. data/doc/api/storefront/checkout/updating_a_checkout.json +10 -9
  254. data/doc/api/storefront/contacts/creating_a_contact.json +8 -7
  255. data/doc/api/storefront/email_signups/creating_an_email_signup.json +8 -7
  256. data/doc/api/storefront/email_signups/showing_an_email_signup_content.json +8 -7
  257. data/doc/api/storefront/index.json +269 -257
  258. data/doc/api/storefront/menus/listing_menus.json +9 -8
  259. data/doc/api/storefront/menus/showing_a_menu.json +11 -10
  260. data/doc/api/storefront/orders/listing_the_user_s_orders.json +10 -9
  261. data/doc/api/storefront/orders/showing_an_order.json +11 -10
  262. data/doc/api/storefront/pages/showing_a_page.json +9 -8
  263. data/doc/api/storefront/password_resets/sending_a_forgot_password_email.json +9 -7
  264. data/doc/api/storefront/personalized_recommendations/showing_recommendations_with_a_session_id.json +11 -11
  265. data/doc/api/storefront/personalized_recommendations/showing_recommendations_with_authentication.json +11 -10
  266. data/doc/api/storefront/products/showing_a_product.json +9 -8
  267. data/doc/api/storefront/products/showing_a_product_with_a_specific_sku_selected.json +9 -8
  268. data/doc/api/storefront/recent_views/showing_recent_views_from_authentication.json +11 -10
  269. data/doc/api/storefront/recent_views/showing_recent_views_with_a_session_id.json +12 -12
  270. data/doc/api/storefront/recent_views/updating_recent_views_with_a_session_id.json +7 -5
  271. data/doc/api/storefront/recent_views/updating_recent_views_with_authentication.json +9 -7
  272. data/doc/api/storefront/saved_addresses/creating_a_saved_address.json +8 -7
  273. data/doc/api/storefront/saved_addresses/deleting_a_saved_address.json +8 -6
  274. data/doc/api/storefront/saved_addresses/listing_the_user_s_saved_addresses.json +10 -9
  275. data/doc/api/storefront/saved_addresses/showing_a_saved_address.json +9 -8
  276. data/doc/api/storefront/saved_addresses/updating_a_saved_address.json +9 -8
  277. data/doc/api/storefront/saved_credit_cards/creating_a_saved_credit_card.json +9 -8
  278. data/doc/api/storefront/saved_credit_cards/deleting_a_saved_credit_card.json +8 -6
  279. data/doc/api/storefront/saved_credit_cards/listing_the_user_s_saved_credit_cards.json +10 -9
  280. data/doc/api/storefront/saved_credit_cards/showing_a_saved_credit_card.json +9 -8
  281. data/doc/api/storefront/saved_credit_cards/updating_a_saved_credit_card.json +10 -9
  282. data/doc/api/storefront/searches/showing_search_autocomplete_suggestions.json +10 -9
  283. data/doc/api/storefront/searches/showing_search_results.json +9 -8
  284. data/doc/api/storefront/segmentation/specifying_session_count_for_segmentation.json +93 -0
  285. data/doc/api/storefront/segmentation/using_session_ids_for_segmenting_non_authenticated_users.json +93 -0
  286. data/doc/api/storefront/system_content/showing_system_content.json +9 -8
  287. data/doc/api/storefront/system_content/showing_the_home_page.json +9 -8
  288. data/doc/api/storefront/taxons/showing_a_taxon.json +11 -10
  289. data/doc/api/storefront/validation_errors/checkout_validation_errors.json +12 -11
  290. data/doc/api/storefront/validation_errors/general_validation_errors.json +5 -4
  291. data/lib/tasks/docs.rake +20 -0
  292. data/lib/workarea/api/documentation_test.rb +10 -1
  293. data/lib/workarea/api/version.rb +1 -1
  294. data/storefront/app/controllers/workarea/api/storefront/analytics_controller.rb +31 -19
  295. data/storefront/app/controllers/workarea/api/storefront/application_controller.rb +15 -2
  296. data/storefront/app/controllers/workarea/api/storefront/authentication.rb +6 -9
  297. data/storefront/app/controllers/workarea/api/storefront/categories_controller.rb +3 -1
  298. data/storefront/app/controllers/workarea/api/storefront/checkouts_controller.rb +0 -1
  299. data/storefront/app/controllers/workarea/api/storefront/menus_controller.rb +3 -1
  300. data/storefront/app/controllers/workarea/api/storefront/pages_controller.rb +3 -1
  301. data/storefront/app/controllers/workarea/api/storefront/products_controller.rb +3 -1
  302. data/storefront/app/controllers/workarea/api/storefront/recent_views_controller.rb +13 -26
  303. data/storefront/app/controllers/workarea/api/storefront/recommendations_controller.rb +2 -8
  304. data/storefront/app/controllers/workarea/api/storefront/searches_controller.rb +0 -12
  305. data/storefront/app/views/workarea/api/storefront/categories/show.json.jbuilder +1 -1
  306. data/storefront/app/views/workarea/api/storefront/email_signups/show.json.jbuilder +1 -1
  307. data/storefront/app/views/workarea/api/storefront/menus/_menu.json.jbuilder +1 -1
  308. data/storefront/app/views/workarea/api/storefront/pages/show.json.jbuilder +1 -1
  309. data/storefront/app/views/workarea/api/storefront/recent_views/show.json.jbuilder +0 -1
  310. data/storefront/app/views/workarea/api/storefront/searches/show.json.jbuilder +1 -1
  311. data/storefront/app/views/workarea/api/storefront/system_content/show.json.jbuilder +1 -1
  312. data/storefront/config/initializers/config.rb +19 -0
  313. data/storefront/lib/workarea/api/storefront.rb +1 -0
  314. data/storefront/lib/workarea/api/storefront/visit.decorator +52 -0
  315. data/storefront/test/documentation/workarea/api/storefront/checkouts_documentation_test.rb +21 -0
  316. data/storefront/test/documentation/workarea/api/storefront/segmentation_documentation_test.rb +104 -0
  317. data/storefront/test/documentation/workarea/api/storefront/validation_documentation_test.rb +1 -1
  318. data/storefront/test/dummy/config/initializers/session_store.rb +3 -1
  319. data/storefront/test/integration/workarea/api/storefront/analytics_integration_test.rb +12 -7
  320. data/storefront/test/integration/workarea/api/storefront/recent_views_integration_test.rb +38 -33
  321. data/storefront/test/integration/workarea/api/storefront/recommendations_integration_test.rb +1 -1
  322. data/storefront/test/integration/workarea/api/storefront/searches_integration_test.rb +0 -36
  323. data/storefront/test/integration/workarea/api/storefront/segments_integration_test.rb +218 -0
  324. data/storefront/workarea-api-storefront.gemspec +2 -2
  325. data/workarea-api.gemspec +1 -1
  326. metadata +32 -13
  327. data/doc/api/storefront/analytics/saving_a_search_abandonment.json +0 -38
  328. data/doc/api/storefront/analytics/saving_filters.json +0 -38
  329. data/storefront/app/controllers/workarea/api/storefront/user_activity.rb +0 -36
  330. 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: fa798507480bf8e3ebc57e56e44a7e80326c1ab0706052bb1fc5c4998625f524
4
+ data.tar.gz: 144a10f0ce2ac2159e893ce8a04b05036eb292013e8336ff41f54e155675a88f
5
5
  SHA512:
6
- metadata.gz: 738d90185757ce38e04eb3d714e7cce98378bc36f0b690b447f04a924a01d8f87e5cd9e0d8cc719d3e0bd9d639f7f3d0f454d92b8d649d8bab076f85d0c07cdc
7
- data.tar.gz: 004b8eabf9b402fac90f08938fd389d8fd44e934d9be8965ab0540895f3ea791e94465a3baa19186a2b318218ec3f7f5360ff7c3244979604319e79d5fe536a1
6
+ metadata.gz: 00be4719b696a19e4b78ef81e187743969f5c5892f6c58c6360d7ab91816478045fe4ffb5f0b05ee53b36d8c47bfb68bdd8d8bb84b996ada61a091171f098d0e
7
+ data.tar.gz: d024b0613c0b9a39b13c4cf165b5dddf1e3d56e910172204052cec175d4167e9db50a07efb558a1099c1f007bdd116c830ebb36437a2a4e43702175793de4d02
@@ -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*
@@ -0,0 +1,2 @@
1
+ inherit_from:
2
+ - https://raw.githubusercontent.com/workarea-commerce/workarea/master/.rubocop.yml
@@ -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
+ }
@@ -1,25 +1,115 @@
1
- Workarea Api 4.4.6 (2019-08-21)
1
+ Workarea Api 4.5.5 (2020-08-19)
2
2
  --------------------------------------------------------------------------------
3
3
 
4
- * Open Source!
4
+ * Update documentation
5
5
 
6
6
 
7
+ Ben Crouse
8
+
9
+
10
+
11
+ Workarea Api 4.5.4 (2020-08-19)
12
+ --------------------------------------------------------------------------------
13
+
14
+ * Handle non-persisted recommendation settings
15
+
16
+ This uses `find_or_initialize` to match our usage of
17
+ `Recommendation::Settings` elsewhere in the platform.
18
+
19
+ Fixes #19
20
+ Ben Crouse
21
+
22
+ * Add Documentation Test for Failed Checkout Update
23
+
24
+ This documents the scenario in which a checkout update fails to persist,
25
+ and thus the API returns a `422` error to signify its failure. It
26
+ depends on the code changes in workarea-commerce/workarea#481, and thus
27
+ we will need to bump the Workarea version to restrict its upgrade to
28
+ users of v3.5.17 and beyond.
29
+
30
+ API-14
31
+ Tom Scott
7
32
 
8
- Workarea Api 4.4.5 (2019-07-23)
33
+
34
+
35
+ Workarea Api 4.5.3 (2020-03-26)
9
36
  --------------------------------------------------------------------------------
10
37
 
11
- * Fix release task
38
+ * Update workarea gem dependencies to reflect reality
39
+
40
+ Ben Crouse
41
+
42
+ * Fix typo
43
+
44
+ Tom Scott
45
+
46
+ * Remove use of #many? on embedded relationship for Rails 6 upgrade
47
+
48
+ Matt Duffy
49
+
50
+ * Bump responders dependecy to 3.0.0
51
+
52
+ Matt Duffy
53
+
54
+
55
+
56
+ Workarea Api 4.5.2 (2020-01-07)
57
+ --------------------------------------------------------------------------------
58
+
59
+ * Fix Docs Generator Task Name
60
+
61
+ The task name `workarea:api:generate_docs` wasn't able to load the
62
+ environment like the rest of the `workarea:test` tasks because it wasn't
63
+ in the correct Rake namespace. This is due to a hack in core that
64
+ configures the Rake environment such that custom Rake tasks for testing
65
+ are possible. Change the task name to `workarea:test:api_docs` to take
66
+ advantage of this hack so the tests will run properly.
67
+
68
+ API-4
69
+ Tom Scott
70
+
71
+ * Add Rake Task For Generating API Documentation
72
+
73
+ The `workarea:api:docs` task will generate all API documentation for all
74
+ plugins without the need to set environment variables. Developers should
75
+ run this task and commit the results in `doc/api` in order to deploy API
76
+ documentation changes to a server.
77
+
78
+ API-4
79
+ Tom Scott
80
+
81
+ * Fix rakefile
12
82
 
13
83
  Curt Howard
14
84
 
15
85
 
16
86
 
17
- Workarea Api 4.4.4 (2019-07-23)
87
+ Workarea Api 4.5.0 (2019-11-26)
18
88
  --------------------------------------------------------------------------------
19
89
 
20
- * Suppress Flash Message and Release Cookie headers from examples
90
+ * Integrate segmentation into the storefront API
91
+
92
+ API-3
93
+ Ben Crouse
94
+
95
+ * Documentation presentation improvements
96
+
97
+ * Alphabetize the navigation
98
+ * Allow markdown for explanations
99
+ Ben Crouse
100
+
101
+ * Remove search suggestions from storefront API
102
+
103
+ This has moved to a plugin, and will need to be implemented there.
104
+ Ben Crouse
105
+
106
+ * Replace Recommendation::UserActivity with Metrics::User
107
+
108
+ Fixes Insight-Related Issues from v3.5.x
109
+ Curt Howard
110
+
111
+ * Initial commit on master
21
112
 
22
- API-226
23
113
  Curt Howard
24
114
 
25
115
 
data/Gemfile CHANGED
@@ -1,5 +1,4 @@
1
1
  source 'https://rubygems.org'
2
- git_source(:github) { |repo| "git@github.com:#{repo}.git" }
3
2
 
4
3
  # Declare your gem's dependencies in api.gemspec.
5
4
  # Bundler will treat runtime dependencies like base dependencies, and
@@ -18,4 +17,4 @@ gemspec
18
17
  gem 'workarea-api-admin', path: 'admin'
19
18
  gem 'workarea-api-storefront', path: 'storefront'
20
19
 
21
- gem 'workarea', '>= 3.4.0'
20
+ gem 'workarea', git: 'https://github.com/workarea-commerce/workarea.git', branch: 'v3.5-stable'
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
@@ -21,7 +22,7 @@ separate APIs for different purposes:
21
22
  To begin using the Workarea API, add the following to your **Gemfile**:
22
23
 
23
24
  ```ruby
24
- gem 'weblinc-api'
25
+ gem 'workarea-api'
25
26
  ```
26
27
 
27
28
  Next, mount the API engines into **config/routes.rb**.
@@ -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,16 @@ 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 "action_view/railtie"
10
+
11
+ require 'workarea/core'
8
12
  require 'rake/testtask'
9
13
  require 'date'
10
14
 
11
15
  load 'rails/test_unit/testing.rake'
12
16
  load 'workarea/changelog.rake'
17
+ load Workarea::Core::Engine.root.join('lib', 'tasks', 'services.rake')
13
18
 
14
19
  GEMS = %w(admin storefront).freeze
15
20
  ROOT_DIR = Dir.pwd
@@ -68,19 +73,24 @@ task :release do
68
73
  host = "https://#{ENV['BUNDLE_GEMS__WEBLINC__COM']}@gems.weblinc.com"
69
74
 
70
75
  #
71
- # Updating changelog
76
+ # Build documentation
72
77
  #
73
78
  #
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'
79
+ system <<~COMMAND
80
+ (cd admin && GENERATE_API_DOCS=true bin/rails test) &&
81
+ (cd storefront && GENERATE_API_DOCS=true bin/rails test) &&
82
+ git add doc/ &&
83
+ git commit -am "Update documentation" &&
84
+ git push origin HEAD
85
+ COMMAND
78
86
 
79
87
  #
80
- # Build documentation
88
+ # Updating changelog
81
89
  #
82
90
  #
83
- system 'GENERATE_API_DOCS=true bundle exec rake test && git add doc && git commit -am "Update documentation" && git push origin HEAD'
91
+ Rake::Task['workarea:changelog'].execute
92
+ system 'git add CHANGELOG.md'
93
+ system 'git commit -m "Update CHANGELOG"'
84
94
 
85
95
  #
86
96
  # Build gem files
@@ -107,7 +117,7 @@ task :release do
107
117
  system "gem push workarea-api-#{Workarea::Api::VERSION}.gem --host #{host}"
108
118
  system 'Tagging git...'
109
119
  system "git tag -a v#{Workarea::Api::VERSION} -m 'Tagging #{Workarea::Api::VERSION}'"
110
- system 'git push --tags'
120
+ system 'git push origin HEAD --follow-tags'
111
121
 
112
122
  #
113
123
  # Clean up
@@ -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