workarea-api 4.4.6

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 (622) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +20 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +37 -0
  4. data/.github/ISSUE_TEMPLATE/documentation-request.md +17 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. data/.gitignore +24 -0
  7. data/.yardopts +1 -0
  8. data/CHANGELOG.md +807 -0
  9. data/CODE_OF_CONDUCT.md +3 -0
  10. data/CONTRIBUTING.md +3 -0
  11. data/Gemfile +21 -0
  12. data/LICENSE +52 -0
  13. data/README.md +107 -0
  14. data/Rakefile +121 -0
  15. data/admin/.gitignore +12 -0
  16. data/admin/README.md +82 -0
  17. data/admin/Rakefile +10 -0
  18. data/admin/app/assets/images/workarea/api/admin/icons/api.svg +1 -0
  19. data/admin/app/controllers/workarea/api/admin/application_controller.rb +73 -0
  20. data/admin/app/controllers/workarea/api/admin/categories_controller.rb +305 -0
  21. data/admin/app/controllers/workarea/api/admin/category_product_rules_controller.rb +232 -0
  22. data/admin/app/controllers/workarea/api/admin/content_assets_controller.rb +299 -0
  23. data/admin/app/controllers/workarea/api/admin/content_controller.rb +268 -0
  24. data/admin/app/controllers/workarea/api/admin/discounts_controller.rb +271 -0
  25. data/admin/app/controllers/workarea/api/admin/email_signups_controller.rb +108 -0
  26. data/admin/app/controllers/workarea/api/admin/fulfillments_controller.rb +268 -0
  27. data/admin/app/controllers/workarea/api/admin/inventory_skus_controller.rb +305 -0
  28. data/admin/app/controllers/workarea/api/admin/navigation_menus_controller.rb +267 -0
  29. data/admin/app/controllers/workarea/api/admin/navigation_taxons_controller.rb +305 -0
  30. data/admin/app/controllers/workarea/api/admin/orders_controller.rb +160 -0
  31. data/admin/app/controllers/workarea/api/admin/pages_controller.rb +305 -0
  32. data/admin/app/controllers/workarea/api/admin/payment_profiles_controller.rb +305 -0
  33. data/admin/app/controllers/workarea/api/admin/payment_transactions_controller.rb +108 -0
  34. data/admin/app/controllers/workarea/api/admin/payments_controller.rb +115 -0
  35. data/admin/app/controllers/workarea/api/admin/prices_controller.rb +232 -0
  36. data/admin/app/controllers/workarea/api/admin/pricing_skus_controller.rb +305 -0
  37. data/admin/app/controllers/workarea/api/admin/product_images_controller.rb +232 -0
  38. data/admin/app/controllers/workarea/api/admin/products_controller.rb +305 -0
  39. data/admin/app/controllers/workarea/api/admin/promo_code_lists_controller.rb +305 -0
  40. data/admin/app/controllers/workarea/api/admin/recommendation_settings_controller.rb +122 -0
  41. data/admin/app/controllers/workarea/api/admin/redirects_controller.rb +305 -0
  42. data/admin/app/controllers/workarea/api/admin/releases_controller.rb +304 -0
  43. data/admin/app/controllers/workarea/api/admin/saved_addresses_controller.rb +232 -0
  44. data/admin/app/controllers/workarea/api/admin/saved_credit_cards_controller.rb +256 -0
  45. data/admin/app/controllers/workarea/api/admin/shipping_rates_controller.rb +232 -0
  46. data/admin/app/controllers/workarea/api/admin/shipping_services_controller.rb +299 -0
  47. data/admin/app/controllers/workarea/api/admin/shippings_controller.rb +105 -0
  48. data/admin/app/controllers/workarea/api/admin/swagger_controller.rb +41 -0
  49. data/admin/app/controllers/workarea/api/admin/tax_categories_controller.rb +242 -0
  50. data/admin/app/controllers/workarea/api/admin/tax_rates_controller.rb +292 -0
  51. data/admin/app/controllers/workarea/api/admin/users_controller.rb +296 -0
  52. data/admin/app/controllers/workarea/api/admin/variants_controller.rb +232 -0
  53. data/admin/app/models/workarea/api/admin/bulk_upsert.rb +74 -0
  54. data/admin/app/models/workarea/user.decorator +7 -0
  55. data/admin/app/views/workarea/admin/users/_api_permissions.html.haml +6 -0
  56. data/admin/app/workers/workarea/perform_api_bulk_upsert.rb +15 -0
  57. data/admin/bin/rails +18 -0
  58. data/admin/config/initializers/append_points.rb +4 -0
  59. data/admin/config/initializers/config.rb +15 -0
  60. data/admin/config/locales/en.yml +9 -0
  61. data/admin/config/routes.rb +81 -0
  62. data/admin/lib/workarea/api/admin/engine.rb +14 -0
  63. data/admin/lib/workarea/api/admin/swagger.rb +106 -0
  64. data/admin/lib/workarea/api/admin.rb +21 -0
  65. data/admin/test/documentation/workarea/api/admin/categories_documentation_test.rb +106 -0
  66. data/admin/test/documentation/workarea/api/admin/category_product_rules_documentation_test.rb +78 -0
  67. data/admin/test/documentation/workarea/api/admin/content_assets_documentation_test.rb +94 -0
  68. data/admin/test/documentation/workarea/api/admin/content_documentation_test.rb +87 -0
  69. data/admin/test/documentation/workarea/api/admin/discounts_documentation_test.rb +85 -0
  70. data/admin/test/documentation/workarea/api/admin/email_signups_documentation_test.rb +41 -0
  71. data/admin/test/documentation/workarea/api/admin/fulfillment_documentation_test.rb +84 -0
  72. data/admin/test/documentation/workarea/api/admin/inventory_skus_documentation_test.rb +95 -0
  73. data/admin/test/documentation/workarea/api/admin/navigation_menus_documentation_test.rb +81 -0
  74. data/admin/test/documentation/workarea/api/admin/navigation_taxons_documentation_test.rb +94 -0
  75. data/admin/test/documentation/workarea/api/admin/orders_documentation_test.rb +65 -0
  76. data/admin/test/documentation/workarea/api/admin/pages_documentation_test.rb +93 -0
  77. data/admin/test/documentation/workarea/api/admin/payment_profiles_documentation_test.rb +98 -0
  78. data/admin/test/documentation/workarea/api/admin/payment_transactions_documentation_test.rb +43 -0
  79. data/admin/test/documentation/workarea/api/admin/payments_documentation_test.rb +41 -0
  80. data/admin/test/documentation/workarea/api/admin/prices_documentation_test.rb +82 -0
  81. data/admin/test/documentation/workarea/api/admin/pricing_skus_documentation_test.rb +95 -0
  82. data/admin/test/documentation/workarea/api/admin/product_images_documentation_test.rb +101 -0
  83. data/admin/test/documentation/workarea/api/admin/products_documentation_test.rb +96 -0
  84. data/admin/test/documentation/workarea/api/admin/promo_code_lists_documentation_test.rb +94 -0
  85. data/admin/test/documentation/workarea/api/admin/recommendation_settings_documentation_test.rb +37 -0
  86. data/admin/test/documentation/workarea/api/admin/redirects_documentation_test.rb +96 -0
  87. data/admin/test/documentation/workarea/api/admin/release_changes_documentation_test.rb +32 -0
  88. data/admin/test/documentation/workarea/api/admin/releases_documentation_test.rb +93 -0
  89. data/admin/test/documentation/workarea/api/admin/saved_addresses_documentation_test.rb +92 -0
  90. data/admin/test/documentation/workarea/api/admin/saved_credit_cards_documentation_test.rb +86 -0
  91. data/admin/test/documentation/workarea/api/admin/shipping_rates_documentation_test.rb +78 -0
  92. data/admin/test/documentation/workarea/api/admin/shipping_services_documentation_test.rb +93 -0
  93. data/admin/test/documentation/workarea/api/admin/shippings_documentation_test.rb +41 -0
  94. data/admin/test/documentation/workarea/api/admin/tax_categories_documentation_test.rb +95 -0
  95. data/admin/test/documentation/workarea/api/admin/tax_rates_documentation_test.rb +78 -0
  96. data/admin/test/documentation/workarea/api/admin/users_documentation_test.rb +99 -0
  97. data/admin/test/documentation/workarea/api/admin/variants_documentation_test.rb +80 -0
  98. data/admin/test/dummy/Rakefile +7 -0
  99. data/admin/test/dummy/app/assets/config/manifest.js +4 -0
  100. data/admin/test/dummy/app/assets/images/.keep +0 -0
  101. data/admin/test/dummy/app/assets/javascripts/application.js +13 -0
  102. data/admin/test/dummy/app/assets/stylesheets/application.css +15 -0
  103. data/admin/test/dummy/app/controllers/application_controller.rb +3 -0
  104. data/admin/test/dummy/app/controllers/concerns/.keep +0 -0
  105. data/admin/test/dummy/app/helpers/application_helper.rb +2 -0
  106. data/admin/test/dummy/app/jobs/application_job.rb +2 -0
  107. data/admin/test/dummy/app/mailers/.keep +0 -0
  108. data/admin/test/dummy/app/mailers/application_mailer.rb +4 -0
  109. data/admin/test/dummy/app/models/.keep +0 -0
  110. data/admin/test/dummy/app/models/concerns/.keep +0 -0
  111. data/admin/test/dummy/app/views/layouts/application.html.erb +14 -0
  112. data/admin/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  113. data/admin/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  114. data/admin/test/dummy/bin/bundle +3 -0
  115. data/admin/test/dummy/bin/rails +4 -0
  116. data/admin/test/dummy/bin/rake +4 -0
  117. data/admin/test/dummy/bin/setup +34 -0
  118. data/admin/test/dummy/bin/update +29 -0
  119. data/admin/test/dummy/config/application.rb +25 -0
  120. data/admin/test/dummy/config/boot.rb +5 -0
  121. data/admin/test/dummy/config/cable.yml +9 -0
  122. data/admin/test/dummy/config/environment.rb +5 -0
  123. data/admin/test/dummy/config/environments/development.rb +55 -0
  124. data/admin/test/dummy/config/environments/production.rb +86 -0
  125. data/admin/test/dummy/config/environments/test.rb +43 -0
  126. data/admin/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  127. data/admin/test/dummy/config/initializers/assets.rb +11 -0
  128. data/admin/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  129. data/admin/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  130. data/admin/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  131. data/admin/test/dummy/config/initializers/inflections.rb +16 -0
  132. data/admin/test/dummy/config/initializers/mime_types.rb +4 -0
  133. data/admin/test/dummy/config/initializers/new_framework_defaults.rb +21 -0
  134. data/admin/test/dummy/config/initializers/session_store.rb +3 -0
  135. data/admin/test/dummy/config/initializers/workarea.rb +8 -0
  136. data/admin/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  137. data/admin/test/dummy/config/locales/en.yml +23 -0
  138. data/admin/test/dummy/config/puma.rb +47 -0
  139. data/admin/test/dummy/config/routes.rb +6 -0
  140. data/admin/test/dummy/config/secrets.yml +22 -0
  141. data/admin/test/dummy/config/spring.rb +6 -0
  142. data/admin/test/dummy/config.ru +4 -0
  143. data/admin/test/dummy/db/seeds.rb +2 -0
  144. data/admin/test/dummy/log/.keep +0 -0
  145. data/admin/test/dummy/public/404.html +67 -0
  146. data/admin/test/dummy/public/422.html +67 -0
  147. data/admin/test/dummy/public/500.html +66 -0
  148. data/admin/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  149. data/admin/test/dummy/public/apple-touch-icon.png +0 -0
  150. data/admin/test/dummy/public/favicon.ico +1 -0
  151. data/admin/test/integration/workarea/api/admin/audit_log_integration_test.rb +20 -0
  152. data/admin/test/integration/workarea/api/admin/authentication_integration_test.rb +61 -0
  153. data/admin/test/integration/workarea/api/admin/categories_integration_test.rb +64 -0
  154. data/admin/test/integration/workarea/api/admin/category_product_rules_integration_test.rb +58 -0
  155. data/admin/test/integration/workarea/api/admin/content_assets_integration_test.rb +65 -0
  156. data/admin/test/integration/workarea/api/admin/content_integration_test.rb +59 -0
  157. data/admin/test/integration/workarea/api/admin/discounts_integration_test.rb +64 -0
  158. data/admin/test/integration/workarea/api/admin/email_signups_integration_test.rb +32 -0
  159. data/admin/test/integration/workarea/api/admin/error_handling_integration_test.rb +16 -0
  160. data/admin/test/integration/workarea/api/admin/fulfillments_integration_test.rb +62 -0
  161. data/admin/test/integration/workarea/api/admin/inventory_skus_integration_test.rb +70 -0
  162. data/admin/test/integration/workarea/api/admin/navigation_menus_integration_test.rb +54 -0
  163. data/admin/test/integration/workarea/api/admin/navigation_taxons_integration_test.rb +63 -0
  164. data/admin/test/integration/workarea/api/admin/orders_integration_test.rb +53 -0
  165. data/admin/test/integration/workarea/api/admin/pages_integration_test.rb +64 -0
  166. data/admin/test/integration/workarea/api/admin/payment_profiles_integration_test.rb +75 -0
  167. data/admin/test/integration/workarea/api/admin/payment_transactions_integration_test.rb +45 -0
  168. data/admin/test/integration/workarea/api/admin/payments_integration_test.rb +29 -0
  169. data/admin/test/integration/workarea/api/admin/prices_integration_test.rb +55 -0
  170. data/admin/test/integration/workarea/api/admin/pricing_skus_integration_test.rb +72 -0
  171. data/admin/test/integration/workarea/api/admin/product_images_integration_test.rb +56 -0
  172. data/admin/test/integration/workarea/api/admin/products_integration_test.rb +66 -0
  173. data/admin/test/integration/workarea/api/admin/promo_code_lists_integration_test.rb +70 -0
  174. data/admin/test/integration/workarea/api/admin/recommendation_settings_integration_test.rb +41 -0
  175. data/admin/test/integration/workarea/api/admin/redirects_integration_test.rb +69 -0
  176. data/admin/test/integration/workarea/api/admin/release_changes_integration_test.rb +32 -0
  177. data/admin/test/integration/workarea/api/admin/releases_integration_test.rb +60 -0
  178. data/admin/test/integration/workarea/api/admin/saved_addresses_integration_test.rb +70 -0
  179. data/admin/test/integration/workarea/api/admin/saved_credit_cards_integration_test.rb +76 -0
  180. data/admin/test/integration/workarea/api/admin/shipping_rates_integration_test.rb +54 -0
  181. data/admin/test/integration/workarea/api/admin/shipping_services_integration_test.rb +64 -0
  182. data/admin/test/integration/workarea/api/admin/shippings_integration_test.rb +34 -0
  183. data/admin/test/integration/workarea/api/admin/tax_categories_integration_test.rb +64 -0
  184. data/admin/test/integration/workarea/api/admin/tax_rates_integration_test.rb +66 -0
  185. data/admin/test/integration/workarea/api/admin/users_integration_test.rb +67 -0
  186. data/admin/test/integration/workarea/api/admin/variants_integration_test.rb +59 -0
  187. data/admin/test/models/workarea/api/admin/bulk_upsert_test.rb +79 -0
  188. data/admin/test/test_helper.rb +10 -0
  189. data/admin/test/vcr_cassettes/product_image_from_url.yml +43 -0
  190. data/admin/workarea-api-admin.gemspec +18 -0
  191. data/app/views/workarea/api/docs/engine_index.haml +1 -0
  192. data/app/views/workarea/api/docs/example.haml +114 -0
  193. data/app/views/workarea/api/docs/index.haml +28 -0
  194. data/app/views/workarea/api/docs/javascripts.haml +31 -0
  195. data/app/views/workarea/api/docs/javascripts_head.haml +5 -0
  196. data/app/views/workarea/api/docs/layout.haml +32 -0
  197. data/app/views/workarea/api/docs/logo.haml +1 -0
  198. data/app/views/workarea/api/docs/nav.haml +7 -0
  199. data/app/views/workarea/api/docs/stylesheets.haml +278 -0
  200. data/config/initializers/raddocs.rb +12 -0
  201. data/config/initializers/workarea.rb +3 -0
  202. data/config/routes.rb +5 -0
  203. data/doc/api/admin/categories/bulk_upserting_categories.json +42 -0
  204. data/doc/api/admin/categories/creating_a_category.json +46 -0
  205. data/doc/api/admin/categories/listing_categories.json +58 -0
  206. data/doc/api/admin/categories/removing_a_category.json +42 -0
  207. data/doc/api/admin/categories/showing_a_category.json +44 -0
  208. data/doc/api/admin/categories/updating_a_category.json +42 -0
  209. data/doc/api/admin/category_product_rules/creating_a_category_product_rule.json +46 -0
  210. data/doc/api/admin/category_product_rules/listing_category_product_rules.json +44 -0
  211. data/doc/api/admin/category_product_rules/removing_a_category_product_rule.json +42 -0
  212. data/doc/api/admin/category_product_rules/updating_a_category_product_rule.json +42 -0
  213. data/doc/api/admin/content/bulk_upserting_content.json +42 -0
  214. data/doc/api/admin/content/creating_content.json +46 -0
  215. data/doc/api/admin/content/listing_content.json +57 -0
  216. data/doc/api/admin/content/showing_content.json +44 -0
  217. data/doc/api/admin/content/updating_content.json +42 -0
  218. data/doc/api/admin/content_assets/bulk_upserting_content_assets.json +42 -0
  219. data/doc/api/admin/content_assets/creating_a_content_asset.json +46 -0
  220. data/doc/api/admin/content_assets/listing_content_assets.json +58 -0
  221. data/doc/api/admin/content_assets/removing_a_content_asset.json +42 -0
  222. data/doc/api/admin/content_assets/showing_a_content_asset.json +44 -0
  223. data/doc/api/admin/content_assets/updating_a_content_asset.json +42 -0
  224. data/doc/api/admin/discounts/creating_a_discount.json +46 -0
  225. data/doc/api/admin/discounts/listing_discounts.json +58 -0
  226. data/doc/api/admin/discounts/removing_a_discount.json +42 -0
  227. data/doc/api/admin/discounts/showing_a_discount.json +44 -0
  228. data/doc/api/admin/discounts/updating_discounts.json +42 -0
  229. data/doc/api/admin/email_signups/listing_email_signups.json +58 -0
  230. data/doc/api/admin/email_signups/showing_an_email_signup.json +44 -0
  231. data/doc/api/admin/fulfillment/listing_fulfillments.json +55 -0
  232. data/doc/api/admin/fulfillment/marking_items_as_canceled.json +46 -0
  233. data/doc/api/admin/fulfillment/marking_items_as_shipped.json +46 -0
  234. data/doc/api/admin/fulfillment/showing_fulfillment.json +44 -0
  235. data/doc/api/admin/index.json +1219 -0
  236. data/doc/api/admin/inventory_skus/bulk_upserting_inventory_skus.json +42 -0
  237. data/doc/api/admin/inventory_skus/creating_an_inventory_sku.json +46 -0
  238. data/doc/api/admin/inventory_skus/listing_inventory_skus.json +58 -0
  239. data/doc/api/admin/inventory_skus/removing_an_inventory_sku.json +42 -0
  240. data/doc/api/admin/inventory_skus/showing_an_inventory_sku.json +44 -0
  241. data/doc/api/admin/inventory_skus/updating_an_inventory_sku.json +42 -0
  242. data/doc/api/admin/navigation_menus/creating_a_menu.json +46 -0
  243. data/doc/api/admin/navigation_menus/listing_menus.json +58 -0
  244. data/doc/api/admin/navigation_menus/removing_a_navigation_menu.json +42 -0
  245. data/doc/api/admin/navigation_menus/showing_a_navigation_menu.json +44 -0
  246. data/doc/api/admin/navigation_menus/updating_a_navigation_menus.json +42 -0
  247. data/doc/api/admin/navigation_taxonomy/bulk_upserting_navigation_taxons.json +42 -0
  248. data/doc/api/admin/navigation_taxonomy/creating_a_taxon.json +46 -0
  249. data/doc/api/admin/navigation_taxonomy/listing_taxons.json +58 -0
  250. data/doc/api/admin/navigation_taxonomy/removing_a_navigation_taxon.json +42 -0
  251. data/doc/api/admin/navigation_taxonomy/showing_a_navigation_taxon.json +44 -0
  252. data/doc/api/admin/navigation_taxonomy/updating_a_navigation_taxons.json +42 -0
  253. data/doc/api/admin/orders/listing_orders.json +58 -0
  254. data/doc/api/admin/orders/showing_an_order.json +44 -0
  255. data/doc/api/admin/orders/viewing_orders_by_date_range.json +68 -0
  256. data/doc/api/admin/pages/bulk_upserting_pages.json +42 -0
  257. data/doc/api/admin/pages/creating_a_page.json +46 -0
  258. data/doc/api/admin/pages/listing_pages.json +58 -0
  259. data/doc/api/admin/pages/removing_a_page.json +42 -0
  260. data/doc/api/admin/pages/showing_a_page.json +44 -0
  261. data/doc/api/admin/pages/updating_a_page.json +42 -0
  262. data/doc/api/admin/payment_profiles/bulk_upserting_payment_profiles.json +42 -0
  263. data/doc/api/admin/payment_profiles/creating_a_payment_profile.json +46 -0
  264. data/doc/api/admin/payment_profiles/listing_payment_profiles.json +58 -0
  265. data/doc/api/admin/payment_profiles/removing_a_payment_profile.json +42 -0
  266. data/doc/api/admin/payment_profiles/showing_a_payment_profile.json +44 -0
  267. data/doc/api/admin/payment_profiles/updating_a_payment_profiles.json +42 -0
  268. data/doc/api/admin/payment_transactions/listing_payment_transactions.json +58 -0
  269. data/doc/api/admin/payment_transactions/showing_a_payment_transaction.json +44 -0
  270. data/doc/api/admin/payments/listing_payments.json +58 -0
  271. data/doc/api/admin/payments/showing_an_payment.json +44 -0
  272. data/doc/api/admin/prices/creating_a_pricing_sku_price.json +46 -0
  273. data/doc/api/admin/prices/listing_pricing_sku_prices.json +58 -0
  274. data/doc/api/admin/prices/removing_a_pricing_sku_price.json +42 -0
  275. data/doc/api/admin/prices/updating_a_pricing_sku_price.json +42 -0
  276. data/doc/api/admin/pricing_skus/bulk_upserting_pricing_skus.json +42 -0
  277. data/doc/api/admin/pricing_skus/creating_an_pricing_sku.json +46 -0
  278. data/doc/api/admin/pricing_skus/listing_pricing_skus.json +58 -0
  279. data/doc/api/admin/pricing_skus/removing_an_pricing_sku.json +42 -0
  280. data/doc/api/admin/pricing_skus/showing_an_pricing_sku.json +44 -0
  281. data/doc/api/admin/pricing_skus/updating_an_pricing_sku.json +42 -0
  282. data/doc/api/admin/product_images/creating_a_product_image_from_base64.json +46 -0
  283. data/doc/api/admin/product_images/creating_a_product_image_from_url.json +46 -0
  284. data/doc/api/admin/product_images/listing_product_images.json +44 -0
  285. data/doc/api/admin/product_images/removing_a_product_image.json +42 -0
  286. data/doc/api/admin/product_images/updating_a_product_image.json +42 -0
  287. data/doc/api/admin/products/bulk_upserting_products.json +42 -0
  288. data/doc/api/admin/products/creating_a_product.json +46 -0
  289. data/doc/api/admin/products/listing_products.json +58 -0
  290. data/doc/api/admin/products/removing_a_product.json +42 -0
  291. data/doc/api/admin/products/showing_a_product.json +44 -0
  292. data/doc/api/admin/products/updating_a_product.json +42 -0
  293. data/doc/api/admin/promo_code_lists/bulk_upserting_promo_code_lists.json +42 -0
  294. data/doc/api/admin/promo_code_lists/creating_a_promo_code_list.json +46 -0
  295. data/doc/api/admin/promo_code_lists/listing_promo_code_lists.json +58 -0
  296. data/doc/api/admin/promo_code_lists/removing_a_promo_code_list.json +42 -0
  297. data/doc/api/admin/promo_code_lists/showing_a_promo_code_list.json +44 -0
  298. data/doc/api/admin/promo_code_lists/updating_a_promo_code_list.json +42 -0
  299. data/doc/api/admin/recommendation_settings/showing_recommendation_settings.json +44 -0
  300. data/doc/api/admin/recommendation_settings/updating_recommendation_settings.json +42 -0
  301. data/doc/api/admin/redirects/bulk_upserting_redirects.json +42 -0
  302. data/doc/api/admin/redirects/creating_a_redirect.json +46 -0
  303. data/doc/api/admin/redirects/listing_redirects.json +58 -0
  304. data/doc/api/admin/redirects/removing_a_redirect.json +42 -0
  305. data/doc/api/admin/redirects/showing_a_redirect.json +44 -0
  306. data/doc/api/admin/redirects/updating_a_redirects.json +42 -0
  307. data/doc/api/admin/release_changes/adding_changes_to_a_release.json +43 -0
  308. data/doc/api/admin/releases/bulk_upserting_releases.json +42 -0
  309. data/doc/api/admin/releases/creating_a_release.json +46 -0
  310. data/doc/api/admin/releases/listing_releases.json +58 -0
  311. data/doc/api/admin/releases/removing_a_release.json +42 -0
  312. data/doc/api/admin/releases/showing_a_release.json +44 -0
  313. data/doc/api/admin/releases/updating_a_release.json +42 -0
  314. data/doc/api/admin/saved_addresses/creating_a_saved_address.json +46 -0
  315. data/doc/api/admin/saved_addresses/listing_saved_address.json +44 -0
  316. data/doc/api/admin/saved_addresses/removing_a_saved_address.json +42 -0
  317. data/doc/api/admin/saved_addresses/updating_a_saved_address.json +42 -0
  318. data/doc/api/admin/saved_credit_cards/creating_a_saved_credit_card.json +46 -0
  319. data/doc/api/admin/saved_credit_cards/listing_saved_credit_cards.json +55 -0
  320. data/doc/api/admin/saved_credit_cards/removing_a_saved_credit_card.json +42 -0
  321. data/doc/api/admin/saved_credit_cards/updating_a_saved_credit_card.json +42 -0
  322. data/doc/api/admin/shipping/listing_shipments.json +58 -0
  323. data/doc/api/admin/shipping/showing_a_shipment.json +44 -0
  324. data/doc/api/admin/shipping_rates/creating_a_shipping_rate.json +46 -0
  325. data/doc/api/admin/shipping_rates/listing_shipping_rates.json +44 -0
  326. data/doc/api/admin/shipping_rates/removing_a_shipping_rate.json +42 -0
  327. data/doc/api/admin/shipping_rates/updating_a_shipping_rate.json +42 -0
  328. data/doc/api/admin/shipping_services/bulk_upserting_shipping_services.json +42 -0
  329. data/doc/api/admin/shipping_services/creating_a_shipping_service.json +46 -0
  330. data/doc/api/admin/shipping_services/listing_shipping_services.json +58 -0
  331. data/doc/api/admin/shipping_services/removing_a_shipping_service.json +42 -0
  332. data/doc/api/admin/shipping_services/showing_a_shipping_service.json +44 -0
  333. data/doc/api/admin/shipping_services/updating_a_shipping_service.json +42 -0
  334. data/doc/api/admin/tax_categories/bulk_upserting_tax_categories.json +42 -0
  335. data/doc/api/admin/tax_categories/creating_a_tax_category.json +46 -0
  336. data/doc/api/admin/tax_categories/listing_tax_categories.json +55 -0
  337. data/doc/api/admin/tax_categories/removing_a_tax_category.json +42 -0
  338. data/doc/api/admin/tax_categories/showing_a_tax_category.json +44 -0
  339. data/doc/api/admin/tax_categories/updating_a_tax_categories.json +42 -0
  340. data/doc/api/admin/tax_rates/creating_a_tax_rate.json +46 -0
  341. data/doc/api/admin/tax_rates/listing_tax_rates.json +44 -0
  342. data/doc/api/admin/tax_rates/removing_a_tax_rate.json +42 -0
  343. data/doc/api/admin/tax_rates/updating_a_tax_rate.json +42 -0
  344. data/doc/api/admin/users/bulk_upserting_users.json +42 -0
  345. data/doc/api/admin/users/creating_a_user.json +46 -0
  346. data/doc/api/admin/users/listing_users.json +58 -0
  347. data/doc/api/admin/users/removing_a_user.json +42 -0
  348. data/doc/api/admin/users/showing_a_user.json +44 -0
  349. data/doc/api/admin/users/updating_a_user.json +42 -0
  350. data/doc/api/admin/variants/creating_a_product_variant.json +46 -0
  351. data/doc/api/admin/variants/listing_product_variants.json +44 -0
  352. data/doc/api/admin/variants/removing_a_product_variant.json +42 -0
  353. data/doc/api/admin/variants/updating_a_product_variant.json +42 -0
  354. data/doc/api/storefront/accounts/creating_an_account.json +51 -0
  355. data/doc/api/storefront/accounts/getting_account_details.json +50 -0
  356. data/doc/api/storefront/accounts/updating_an_account.json +52 -0
  357. data/doc/api/storefront/analytics/saving_a_category_view.json +39 -0
  358. data/doc/api/storefront/analytics/saving_a_product_view.json +39 -0
  359. data/doc/api/storefront/analytics/saving_a_search.json +39 -0
  360. data/doc/api/storefront/analytics/saving_a_search_abandonment.json +38 -0
  361. data/doc/api/storefront/analytics/saving_filters.json +38 -0
  362. data/doc/api/storefront/assets/showing_an_asset.json +50 -0
  363. data/doc/api/storefront/authentication/creating_an_authentication_token.json +51 -0
  364. data/doc/api/storefront/authentication/refreshing_an_authentication_token.json +52 -0
  365. data/doc/api/storefront/authentication/using_an_authentication_token.json +51 -0
  366. data/doc/api/storefront/cart/adding_a_promo_code.json +52 -0
  367. data/doc/api/storefront/cart/adding_an_item.json +52 -0
  368. data/doc/api/storefront/cart/creating_a_new_cart_for_a_user.json +52 -0
  369. data/doc/api/storefront/cart/creating_a_new_guest_cart.json +51 -0
  370. data/doc/api/storefront/cart/delete_an_item.json +52 -0
  371. data/doc/api/storefront/cart/listing_user_s_carts.json +51 -0
  372. data/doc/api/storefront/cart/showing_cart.json +51 -0
  373. data/doc/api/storefront/cart/updating_an_item.json +52 -0
  374. data/doc/api/storefront/categories/showing_a_category.json +64 -0
  375. data/doc/api/storefront/categories/showing_a_listing_of_categories.json +55 -0
  376. data/doc/api/storefront/checkout/completing_a_checkout.json +51 -0
  377. data/doc/api/storefront/checkout/showing_a_checkout.json +50 -0
  378. data/doc/api/storefront/checkout/updating_a_checkout.json +51 -0
  379. data/doc/api/storefront/contacts/creating_a_contact.json +51 -0
  380. data/doc/api/storefront/email_signups/creating_an_email_signup.json +51 -0
  381. data/doc/api/storefront/email_signups/showing_an_email_signup_content.json +50 -0
  382. data/doc/api/storefront/index.json +527 -0
  383. data/doc/api/storefront/menus/listing_menus.json +51 -0
  384. data/doc/api/storefront/menus/showing_a_menu.json +51 -0
  385. data/doc/api/storefront/orders/listing_the_user_s_orders.json +51 -0
  386. data/doc/api/storefront/orders/showing_an_order.json +51 -0
  387. data/doc/api/storefront/pages/showing_a_page.json +51 -0
  388. data/doc/api/storefront/password_resets/sending_a_forgot_password_email.json +50 -0
  389. data/doc/api/storefront/personalized_recommendations/showing_recommendations_with_a_session_id.json +55 -0
  390. data/doc/api/storefront/personalized_recommendations/showing_recommendations_with_authentication.json +51 -0
  391. data/doc/api/storefront/products/showing_a_product.json +51 -0
  392. data/doc/api/storefront/products/showing_a_product_with_a_specific_sku_selected.json +55 -0
  393. data/doc/api/storefront/recent_views/showing_recent_views_from_authentication.json +51 -0
  394. data/doc/api/storefront/recent_views/showing_recent_views_with_a_session_id.json +55 -0
  395. data/doc/api/storefront/recent_views/updating_recent_views_with_a_session_id.json +53 -0
  396. data/doc/api/storefront/recent_views/updating_recent_views_with_authentication.json +51 -0
  397. data/doc/api/storefront/saved_addresses/creating_a_saved_address.json +51 -0
  398. data/doc/api/storefront/saved_addresses/deleting_a_saved_address.json +48 -0
  399. data/doc/api/storefront/saved_addresses/listing_the_user_s_saved_addresses.json +51 -0
  400. data/doc/api/storefront/saved_addresses/showing_a_saved_address.json +50 -0
  401. data/doc/api/storefront/saved_addresses/updating_a_saved_address.json +51 -0
  402. data/doc/api/storefront/saved_credit_cards/creating_a_saved_credit_card.json +51 -0
  403. data/doc/api/storefront/saved_credit_cards/deleting_a_saved_credit_card.json +48 -0
  404. data/doc/api/storefront/saved_credit_cards/listing_the_user_s_saved_credit_cards.json +51 -0
  405. data/doc/api/storefront/saved_credit_cards/showing_a_saved_credit_card.json +50 -0
  406. data/doc/api/storefront/saved_credit_cards/updating_a_saved_credit_card.json +51 -0
  407. data/doc/api/storefront/searches/showing_search_autocomplete_suggestions.json +52 -0
  408. data/doc/api/storefront/searches/showing_search_results.json +69 -0
  409. data/doc/api/storefront/system_content/showing_system_content.json +51 -0
  410. data/doc/api/storefront/system_content/showing_the_home_page.json +51 -0
  411. data/doc/api/storefront/taxons/showing_a_taxon.json +51 -0
  412. data/doc/api/storefront/validation_errors/checkout_validation_errors.json +51 -0
  413. data/doc/api/storefront/validation_errors/general_validation_errors.json +45 -0
  414. data/lib/workarea/api/curl.rb +86 -0
  415. data/lib/workarea/api/documentation.rb +61 -0
  416. data/lib/workarea/api/documentation_test.rb +210 -0
  417. data/lib/workarea/api/engine.rb +8 -0
  418. data/lib/workarea/api/version.rb +5 -0
  419. data/lib/workarea/api.rb +18 -0
  420. data/storefront/.gitignore +12 -0
  421. data/storefront/README.md +58 -0
  422. data/storefront/Rakefile +10 -0
  423. data/storefront/app/controllers/workarea/api/storefront/accounts_controller.rb +31 -0
  424. data/storefront/app/controllers/workarea/api/storefront/analytics_controller.rb +41 -0
  425. data/storefront/app/controllers/workarea/api/storefront/application_controller.rb +65 -0
  426. data/storefront/app/controllers/workarea/api/storefront/assets_controller.rb +11 -0
  427. data/storefront/app/controllers/workarea/api/storefront/authentication.rb +30 -0
  428. data/storefront/app/controllers/workarea/api/storefront/authentication_tokens_controller.rb +50 -0
  429. data/storefront/app/controllers/workarea/api/storefront/cart_items_controller.rb +100 -0
  430. data/storefront/app/controllers/workarea/api/storefront/carts_controller.rb +47 -0
  431. data/storefront/app/controllers/workarea/api/storefront/categories_controller.rb +25 -0
  432. data/storefront/app/controllers/workarea/api/storefront/checkouts_controller.rb +117 -0
  433. data/storefront/app/controllers/workarea/api/storefront/contacts_controller.rb +20 -0
  434. data/storefront/app/controllers/workarea/api/storefront/current_checkout.rb +60 -0
  435. data/storefront/app/controllers/workarea/api/storefront/email_signups_controller.rb +15 -0
  436. data/storefront/app/controllers/workarea/api/storefront/menus_controller.rb +19 -0
  437. data/storefront/app/controllers/workarea/api/storefront/orders_controller.rb +32 -0
  438. data/storefront/app/controllers/workarea/api/storefront/pages_controller.rb +14 -0
  439. data/storefront/app/controllers/workarea/api/storefront/password_resets_controller.rb +17 -0
  440. data/storefront/app/controllers/workarea/api/storefront/products_controller.rb +17 -0
  441. data/storefront/app/controllers/workarea/api/storefront/recent_views_controller.rb +46 -0
  442. data/storefront/app/controllers/workarea/api/storefront/recommendations_controller.rb +22 -0
  443. data/storefront/app/controllers/workarea/api/storefront/saved_addresses_controller.rb +38 -0
  444. data/storefront/app/controllers/workarea/api/storefront/saved_credit_cards_controller.rb +54 -0
  445. data/storefront/app/controllers/workarea/api/storefront/searches_controller.rb +29 -0
  446. data/storefront/app/controllers/workarea/api/storefront/system_content_controller.rb +16 -0
  447. data/storefront/app/controllers/workarea/api/storefront/taxons_controller.rb +20 -0
  448. data/storefront/app/controllers/workarea/api/storefront/user_activity.rb +36 -0
  449. data/storefront/app/controllers/workarea/storefront/application_controller.decorator +12 -0
  450. data/storefront/app/helpers/workarea/api/storefront/application_helper.rb +15 -0
  451. data/storefront/app/helpers/workarea/api/storefront/checkouts_helper.rb +11 -0
  452. data/storefront/app/helpers/workarea/api/storefront/content_blocks_helper.rb +38 -0
  453. data/storefront/app/models/workarea/catalog/category.decorator +7 -0
  454. data/storefront/app/models/workarea/user/authentication_token.rb +33 -0
  455. data/storefront/app/models/workarea/user.decorator +8 -0
  456. data/storefront/app/view_models/workarea/api/storefront/search_suggestion_view_model.rb +21 -0
  457. data/storefront/app/views/workarea/api/storefront/accounts/_account.json.jbuilder +7 -0
  458. data/storefront/app/views/workarea/api/storefront/accounts/create.json.jbuilder +7 -0
  459. data/storefront/app/views/workarea/api/storefront/accounts/show.json.jbuilder +1 -0
  460. data/storefront/app/views/workarea/api/storefront/assets/show.json.jbuilder +4 -0
  461. data/storefront/app/views/workarea/api/storefront/authentication_tokens/_authentication_token.json.jbuilder +2 -0
  462. data/storefront/app/views/workarea/api/storefront/authentication_tokens/create.json.jbuilder +1 -0
  463. data/storefront/app/views/workarea/api/storefront/authentication_tokens/update.json.jbuilder +1 -0
  464. data/storefront/app/views/workarea/api/storefront/cart_items/item.json.jbuilder +9 -0
  465. data/storefront/app/views/workarea/api/storefront/carts/index.json.jbuilder +4 -0
  466. data/storefront/app/views/workarea/api/storefront/carts/show.json.jbuilder +1 -0
  467. data/storefront/app/views/workarea/api/storefront/categories/_category.json.jbuilder +4 -0
  468. data/storefront/app/views/workarea/api/storefront/categories/index.json.jbuilder +3 -0
  469. data/storefront/app/views/workarea/api/storefront/categories/show.json.jbuilder +30 -0
  470. data/storefront/app/views/workarea/api/storefront/checkouts/_shipping_options.json.jbuilder +4 -0
  471. data/storefront/app/views/workarea/api/storefront/checkouts/show.json.jbuilder +17 -0
  472. data/storefront/app/views/workarea/api/storefront/checkouts/steps/_addresses.json.jbuilder +19 -0
  473. data/storefront/app/views/workarea/api/storefront/checkouts/steps/_payment.json.jbuilder +9 -0
  474. data/storefront/app/views/workarea/api/storefront/checkouts/steps/_shipping.json.jbuilder +9 -0
  475. data/storefront/app/views/workarea/api/storefront/content_blocks/_block.json.jbuilder +7 -0
  476. data/storefront/app/views/workarea/api/storefront/email_signups/create.json.jbuilder +2 -0
  477. data/storefront/app/views/workarea/api/storefront/email_signups/show.json.jbuilder +4 -0
  478. data/storefront/app/views/workarea/api/storefront/facets/_range.json.jbuilder +8 -0
  479. data/storefront/app/views/workarea/api/storefront/facets/_terms.json.jbuilder +8 -0
  480. data/storefront/app/views/workarea/api/storefront/fulfillments/_fulfillment.json.jbuilder +18 -0
  481. data/storefront/app/views/workarea/api/storefront/menus/_menu.json.jbuilder +11 -0
  482. data/storefront/app/views/workarea/api/storefront/menus/index.json.jbuilder +3 -0
  483. data/storefront/app/views/workarea/api/storefront/menus/show.json.jbuilder +1 -0
  484. data/storefront/app/views/workarea/api/storefront/orders/_item.json.jbuilder +26 -0
  485. data/storefront/app/views/workarea/api/storefront/orders/_order.json.jbuilder +42 -0
  486. data/storefront/app/views/workarea/api/storefront/orders/index.json.jbuilder +4 -0
  487. data/storefront/app/views/workarea/api/storefront/orders/show.json.jbuilder +7 -0
  488. data/storefront/app/views/workarea/api/storefront/orders/tenders/_credit_card.json.jbuilder +6 -0
  489. data/storefront/app/views/workarea/api/storefront/orders/tenders/_store_credit.json.jbuilder +2 -0
  490. data/storefront/app/views/workarea/api/storefront/pages/show.json.jbuilder +16 -0
  491. data/storefront/app/views/workarea/api/storefront/products/_image_urls.json.jbuilder +5 -0
  492. data/storefront/app/views/workarea/api/storefront/products/_product.json.jbuilder +41 -0
  493. data/storefront/app/views/workarea/api/storefront/products/show.json.jbuilder +9 -0
  494. data/storefront/app/views/workarea/api/storefront/recent_views/show.json.jbuilder +8 -0
  495. data/storefront/app/views/workarea/api/storefront/recommendations/show.json.jbuilder +3 -0
  496. data/storefront/app/views/workarea/api/storefront/saved_addresses/_saved_address.json.jbuilder +2 -0
  497. data/storefront/app/views/workarea/api/storefront/saved_addresses/index.json.jbuilder +4 -0
  498. data/storefront/app/views/workarea/api/storefront/saved_addresses/show.json.jbuilder +2 -0
  499. data/storefront/app/views/workarea/api/storefront/saved_credit_cards/_card.json.jbuilder +9 -0
  500. data/storefront/app/views/workarea/api/storefront/saved_credit_cards/index.json.jbuilder +4 -0
  501. data/storefront/app/views/workarea/api/storefront/saved_credit_cards/show.json.jbuilder +2 -0
  502. data/storefront/app/views/workarea/api/storefront/searches/index.json.jbuilder +1 -0
  503. data/storefront/app/views/workarea/api/storefront/searches/show.json.jbuilder +19 -0
  504. data/storefront/app/views/workarea/api/storefront/shared/_address.json.jbuilder +12 -0
  505. data/storefront/app/views/workarea/api/storefront/shared/_pagination.json.jbuilder +11 -0
  506. data/storefront/app/views/workarea/api/storefront/system_content/show.json.jbuilder +12 -0
  507. data/storefront/app/views/workarea/api/storefront/taxons/_taxon.json.jbuilder +10 -0
  508. data/storefront/app/views/workarea/api/storefront/taxons/show.json.jbuilder +7 -0
  509. data/storefront/app/workers/workarea/remove_authentication_tokens_on_password_changes.rb +19 -0
  510. data/storefront/bin/rails +18 -0
  511. data/storefront/config/initializers/config.rb +2 -0
  512. data/storefront/config/locales/en.yml +13 -0
  513. data/storefront/config/routes.rb +41 -0
  514. data/storefront/lib/workarea/api/storefront/engine.rb +10 -0
  515. data/storefront/lib/workarea/api/storefront.rb +15 -0
  516. data/storefront/test/documentation/workarea/api/storefront/accounts_documentation_test.rb +70 -0
  517. data/storefront/test/documentation/workarea/api/storefront/analytics_documentation_test.rb +51 -0
  518. data/storefront/test/documentation/workarea/api/storefront/assets_documentation_test.rb +32 -0
  519. data/storefront/test/documentation/workarea/api/storefront/authentication_documentation_test.rb +84 -0
  520. data/storefront/test/documentation/workarea/api/storefront/cart_items_documentation_test.rb +104 -0
  521. data/storefront/test/documentation/workarea/api/storefront/carts_documentation_test.rb +121 -0
  522. data/storefront/test/documentation/workarea/api/storefront/categories_documentation_test.rb +90 -0
  523. data/storefront/test/documentation/workarea/api/storefront/checkouts_documentation_test.rb +142 -0
  524. data/storefront/test/documentation/workarea/api/storefront/contacts_documentation_test.rb +39 -0
  525. data/storefront/test/documentation/workarea/api/storefront/email_signups_documentation_test.rb +53 -0
  526. data/storefront/test/documentation/workarea/api/storefront/menus_documentation_test.rb +67 -0
  527. data/storefront/test/documentation/workarea/api/storefront/orders_documentation_test.rb +127 -0
  528. data/storefront/test/documentation/workarea/api/storefront/pages_documentation_test.rb +66 -0
  529. data/storefront/test/documentation/workarea/api/storefront/password_resets_documentation_test.rb +30 -0
  530. data/storefront/test/documentation/workarea/api/storefront/products_documentation_test.rb +64 -0
  531. data/storefront/test/documentation/workarea/api/storefront/recent_views_documentation_test.rb +116 -0
  532. data/storefront/test/documentation/workarea/api/storefront/recommendations_documentation_test.rb +68 -0
  533. data/storefront/test/documentation/workarea/api/storefront/saved_addresses_documentation_test.rb +129 -0
  534. data/storefront/test/documentation/workarea/api/storefront/saved_credit_cards_documentation_test.rb +129 -0
  535. data/storefront/test/documentation/workarea/api/storefront/searches_documentation_test.rb +88 -0
  536. data/storefront/test/documentation/workarea/api/storefront/system_content_documentation_test.rb +66 -0
  537. data/storefront/test/documentation/workarea/api/storefront/taxons_documentation_test.rb +37 -0
  538. data/storefront/test/documentation/workarea/api/storefront/validation_documentation_test.rb +81 -0
  539. data/storefront/test/dummy/Rakefile +7 -0
  540. data/storefront/test/dummy/app/assets/config/manifest.js +4 -0
  541. data/storefront/test/dummy/app/assets/images/.keep +0 -0
  542. data/storefront/test/dummy/app/assets/javascripts/application.js +13 -0
  543. data/storefront/test/dummy/app/assets/stylesheets/application.css +15 -0
  544. data/storefront/test/dummy/app/controllers/application_controller.rb +3 -0
  545. data/storefront/test/dummy/app/controllers/concerns/.keep +0 -0
  546. data/storefront/test/dummy/app/helpers/application_helper.rb +2 -0
  547. data/storefront/test/dummy/app/jobs/application_job.rb +2 -0
  548. data/storefront/test/dummy/app/mailers/.keep +0 -0
  549. data/storefront/test/dummy/app/mailers/application_mailer.rb +4 -0
  550. data/storefront/test/dummy/app/models/.keep +0 -0
  551. data/storefront/test/dummy/app/models/concerns/.keep +0 -0
  552. data/storefront/test/dummy/app/views/layouts/application.html.erb +14 -0
  553. data/storefront/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  554. data/storefront/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  555. data/storefront/test/dummy/bin/bundle +3 -0
  556. data/storefront/test/dummy/bin/rails +4 -0
  557. data/storefront/test/dummy/bin/rake +4 -0
  558. data/storefront/test/dummy/bin/setup +34 -0
  559. data/storefront/test/dummy/bin/update +29 -0
  560. data/storefront/test/dummy/config/application.rb +25 -0
  561. data/storefront/test/dummy/config/boot.rb +5 -0
  562. data/storefront/test/dummy/config/cable.yml +9 -0
  563. data/storefront/test/dummy/config/environment.rb +5 -0
  564. data/storefront/test/dummy/config/environments/development.rb +55 -0
  565. data/storefront/test/dummy/config/environments/production.rb +86 -0
  566. data/storefront/test/dummy/config/environments/test.rb +43 -0
  567. data/storefront/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  568. data/storefront/test/dummy/config/initializers/assets.rb +11 -0
  569. data/storefront/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  570. data/storefront/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  571. data/storefront/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  572. data/storefront/test/dummy/config/initializers/inflections.rb +16 -0
  573. data/storefront/test/dummy/config/initializers/mime_types.rb +4 -0
  574. data/storefront/test/dummy/config/initializers/new_framework_defaults.rb +21 -0
  575. data/storefront/test/dummy/config/initializers/session_store.rb +3 -0
  576. data/storefront/test/dummy/config/initializers/workarea.rb +8 -0
  577. data/storefront/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  578. data/storefront/test/dummy/config/locales/en.yml +23 -0
  579. data/storefront/test/dummy/config/puma.rb +47 -0
  580. data/storefront/test/dummy/config/routes.rb +6 -0
  581. data/storefront/test/dummy/config/secrets.yml +22 -0
  582. data/storefront/test/dummy/config/spring.rb +6 -0
  583. data/storefront/test/dummy/config.ru +4 -0
  584. data/storefront/test/dummy/db/seeds.rb +2 -0
  585. data/storefront/test/dummy/log/.keep +0 -0
  586. data/storefront/test/dummy/public/404.html +67 -0
  587. data/storefront/test/dummy/public/422.html +67 -0
  588. data/storefront/test/dummy/public/500.html +66 -0
  589. data/storefront/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  590. data/storefront/test/dummy/public/apple-touch-icon.png +0 -0
  591. data/storefront/test/dummy/public/favicon.ico +1 -0
  592. data/storefront/test/integration/workarea/api/storefront/accounts_integration_test.rb +49 -0
  593. data/storefront/test/integration/workarea/api/storefront/analytics_integration_test.rb +36 -0
  594. data/storefront/test/integration/workarea/api/storefront/assets_integration_test.rb +24 -0
  595. data/storefront/test/integration/workarea/api/storefront/authentication_integration_test.rb +50 -0
  596. data/storefront/test/integration/workarea/api/storefront/authentication_tokens_integration_test.rb +87 -0
  597. data/storefront/test/integration/workarea/api/storefront/cart_items_integration_test.rb +149 -0
  598. data/storefront/test/integration/workarea/api/storefront/carts_integration_test.rb +114 -0
  599. data/storefront/test/integration/workarea/api/storefront/categories_integration_test.rb +84 -0
  600. data/storefront/test/integration/workarea/api/storefront/checkouts_integration_test.rb +203 -0
  601. data/storefront/test/integration/workarea/api/storefront/contacts_integration_test.rb +28 -0
  602. data/storefront/test/integration/workarea/api/storefront/email_signups_integration_test.rb +35 -0
  603. data/storefront/test/integration/workarea/api/storefront/menus_integration_test.rb +53 -0
  604. data/storefront/test/integration/workarea/api/storefront/orders_integration_test.rb +115 -0
  605. data/storefront/test/integration/workarea/api/storefront/pages_integration_test.rb +57 -0
  606. data/storefront/test/integration/workarea/api/storefront/password_resets_integration_test.rb +20 -0
  607. data/storefront/test/integration/workarea/api/storefront/products_integration_test.rb +50 -0
  608. data/storefront/test/integration/workarea/api/storefront/recent_views_integration_test.rb +118 -0
  609. data/storefront/test/integration/workarea/api/storefront/recommendations_integration_test.rb +51 -0
  610. data/storefront/test/integration/workarea/api/storefront/saved_addresses_integration_test.rb +100 -0
  611. data/storefront/test/integration/workarea/api/storefront/saved_credit_cards_integration_test.rb +107 -0
  612. data/storefront/test/integration/workarea/api/storefront/searches_integration_test.rb +128 -0
  613. data/storefront/test/integration/workarea/api/storefront/system_content_integration_test.rb +35 -0
  614. data/storefront/test/integration/workarea/api/storefront/taxons_integration_test.rb +44 -0
  615. data/storefront/test/integration/workarea/api/storefront/user_carts_integration_test.rb +55 -0
  616. data/storefront/test/models/workarea/user/authentication_token_test.rb +30 -0
  617. data/storefront/test/support/authentication_test.rb +25 -0
  618. data/storefront/test/support/orders_test.rb +18 -0
  619. data/storefront/test/test_helper.rb +10 -0
  620. data/storefront/workarea-api-storefront.gemspec +18 -0
  621. data/workarea-api.gemspec +25 -0
  622. metadata +741 -0
@@ -0,0 +1,271 @@
1
+ module Workarea
2
+ module Api
3
+ module Admin
4
+ class DiscountsController < Admin::ApplicationController
5
+ before_action :find_discount, except: [:index, :create, :bulk]
6
+
7
+ swagger_path '/discounts' do
8
+ operation :get do
9
+ key :summary, 'All Discounts'
10
+ key :description, 'Returns all discounts from the system'
11
+ key :operationId, 'listDiscounts'
12
+ key :produces, ['application/json']
13
+
14
+ parameter do
15
+ key :name, :page
16
+ key :in, :query
17
+ key :description, 'Current page'
18
+ key :required, false
19
+ key :type, :integer
20
+ key :default, 1
21
+ end
22
+ parameter do
23
+ key :name, :sort_by
24
+ key :in, :query
25
+ key :description, 'Field on which to sort (see responses for possible values)'
26
+ key :required, false
27
+ key :type, :string
28
+ key :default, 'created_at'
29
+ end
30
+ parameter do
31
+ key :name, :sort_direction
32
+ key :in, :query
33
+ key :description, 'Direction for sort by'
34
+ key :type, :string
35
+ key :enum, %w(asc desc)
36
+ key :default, 'desc'
37
+ end
38
+
39
+ response 200 do
40
+ key :description, 'Discounts'
41
+ schema do
42
+ key :type, :object
43
+ property :discounts do
44
+ key :type, :array
45
+ items do
46
+ key :'$ref', 'Workarea::Pricing::Discount'
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ operation :post do
54
+ key :summary, 'Create Discount'
55
+ key :description, 'Creates a new discount.'
56
+ key :operationId, 'addDiscount'
57
+ key :produces, ['application/json']
58
+
59
+ parameter do
60
+ key :name, :body
61
+ key :in, :body
62
+ key :description, 'Discount to add'
63
+ key :required, true
64
+ schema do
65
+ key :type, :object
66
+ property :discount do
67
+ key :'$ref', 'Workarea::Pricing::Discount'
68
+ end
69
+ end
70
+ end
71
+
72
+ response 201 do
73
+ key :description, 'Discount created'
74
+ schema do
75
+ key :type, :object
76
+ property :discount do
77
+ key :'$ref', 'Workarea::Pricing::Discount'
78
+ end
79
+ end
80
+ end
81
+
82
+ response 422 do
83
+ key :description, 'Validation failure'
84
+ schema do
85
+ key :type, :object
86
+ property :problem do
87
+ key :type, :string
88
+ end
89
+ property :document do
90
+ key :'$ref', 'Workarea::Pricing::Discount'
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
96
+
97
+ def index
98
+ @discounts = Pricing::Discount
99
+ .all
100
+ .order_by(sort_field => sort_direction)
101
+ .page(params[:page])
102
+
103
+ respond_with discounts: @discounts
104
+ end
105
+
106
+ def create
107
+ attrs = params[:discount].presence || {}
108
+
109
+ @discount = NewDiscount.new_discount(attrs[:type], attrs.except(:type))
110
+ @discount.save!
111
+
112
+ respond_with(
113
+ { discount: @discount },
114
+ { status: :created,
115
+ location: discount_path(@discount) }
116
+ )
117
+ end
118
+
119
+ swagger_path '/discounts/{id}' do
120
+ operation :get do
121
+ key :summary, 'Find Discount by ID'
122
+ key :description, 'Returns a single discount'
123
+ key :operationId, 'showDiscount'
124
+
125
+ parameter do
126
+ key :name, :id
127
+ key :in, :path
128
+ key :description, 'ID of discount to fetch'
129
+ key :required, true
130
+ key :type, :string
131
+ end
132
+
133
+ response 200 do
134
+ key :description, 'Discount details'
135
+ schema do
136
+ key :type, :object
137
+ property :discount do
138
+ key :'$ref', 'Workarea::Pricing::Discount'
139
+ end
140
+ end
141
+ end
142
+
143
+ response 404 do
144
+ key :description, 'Discount not found'
145
+ schema do
146
+ key :type, :object
147
+ property :problem do
148
+ key :type, :string
149
+ end
150
+ property :params do
151
+ key :type, :object
152
+ key :additionalProperties, true
153
+ end
154
+ end
155
+ end
156
+ end
157
+
158
+ operation :patch do
159
+ key :summary, 'Update a Discount'
160
+ key :description, 'Updates attributes on a discount'
161
+ key :operationId, 'updateDiscount'
162
+
163
+ parameter do
164
+ key :name, :id
165
+ key :in, :path
166
+ key :description, 'ID of discount to update'
167
+ key :required, true
168
+ key :type, :string
169
+ end
170
+
171
+ parameter do
172
+ key :name, :body
173
+ key :in, :body
174
+ key :description, 'New attributes'
175
+ key :required, true
176
+ schema do
177
+ key :type, :object
178
+ property :discount do
179
+ key :'$ref', 'Workarea::Pricing::Discount'
180
+ end
181
+ end
182
+ end
183
+
184
+ response 204 do
185
+ key :description, 'Discount updated successfully'
186
+ end
187
+
188
+ response 422 do
189
+ key :description, 'Validation failure'
190
+ schema do
191
+ key :type, :object
192
+ property :problem do
193
+ key :type, :string
194
+ end
195
+ property :document do
196
+ key :'$ref', 'Workarea::Pricing::Discount'
197
+ end
198
+ end
199
+ end
200
+
201
+ response 404 do
202
+ key :description, 'Discount not found'
203
+ schema do
204
+ key :type, :object
205
+ property :problem do
206
+ key :type, :string
207
+ end
208
+ property :params do
209
+ key :type, :object
210
+ key :additionalProperties, true
211
+ end
212
+ end
213
+ end
214
+ end
215
+
216
+ operation :delete do
217
+ key :summary, 'Remove a Discount'
218
+ key :description, 'Remove a discount'
219
+ key :operationId, 'removeDiscount'
220
+
221
+ parameter do
222
+ key :name, :id
223
+ key :in, :path
224
+ key :description, 'ID of discount to remove'
225
+ key :required, true
226
+ key :type, :string
227
+ end
228
+
229
+ response 204 do
230
+ key :description, 'Discount removed successfully'
231
+ end
232
+
233
+ response 404 do
234
+ key :description, 'Discount not found'
235
+ schema do
236
+ key :type, :object
237
+ property :problem do
238
+ key :type, :string
239
+ end
240
+ property :params do
241
+ key :type, :object
242
+ key :additionalProperties, true
243
+ end
244
+ end
245
+ end
246
+ end
247
+ end
248
+
249
+ def show
250
+ respond_with discount: @discount
251
+ end
252
+
253
+ def update
254
+ @discount.update_attributes!(params[:discount])
255
+ respond_with discount: @discount
256
+ end
257
+
258
+ def destroy
259
+ @discount.destroy
260
+ head :no_content
261
+ end
262
+
263
+ private
264
+
265
+ def find_discount
266
+ @discount = Pricing::Discount.find(params[:id])
267
+ end
268
+ end
269
+ end
270
+ end
271
+ end
@@ -0,0 +1,108 @@
1
+ module Workarea
2
+ module Api
3
+ module Admin
4
+ class EmailSignupsController < Admin::ApplicationController
5
+ swagger_path '/email_signups' do
6
+ operation :get do
7
+ key :summary, 'All Email Signups'
8
+ key :description, 'Returns all email signups from the system'
9
+ key :operationId, 'listEmailSignups'
10
+ key :produces, ['application/json']
11
+
12
+ parameter do
13
+ key :name, :page
14
+ key :in, :query
15
+ key :description, 'Current page'
16
+ key :required, false
17
+ key :type, :integer
18
+ key :default, 1
19
+ end
20
+ parameter do
21
+ key :name, :sort_by
22
+ key :in, :query
23
+ key :description, 'Field on which to sort (see responses for possible values)'
24
+ key :required, false
25
+ key :type, :string
26
+ key :default, 'created_at'
27
+ end
28
+ parameter do
29
+ key :name, :sort_direction
30
+ key :in, :query
31
+ key :description, 'Direction for sort by'
32
+ key :type, :string
33
+ key :enum, %w(asc desc)
34
+ key :default, 'desc'
35
+ end
36
+
37
+ response 200 do
38
+ key :description, 'Email Signups'
39
+ schema do
40
+ key :type, :object
41
+ property :email_signups do
42
+ key :type, :array
43
+ items do
44
+ key :'$ref', 'Workarea::Email::Signup'
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ def index
53
+ @email_signups = Email::Signup
54
+ .all
55
+ .order_by(sort_field => sort_direction)
56
+ .page(params[:page])
57
+
58
+ respond_with email_signups: @email_signups
59
+ end
60
+
61
+ swagger_path '/email_signups/{id}' do
62
+ operation :get do
63
+ key :summary, 'Find Email Signup by ID'
64
+ key :description, 'Returns a single email signup'
65
+ key :operationId, 'showEmailSignup'
66
+
67
+ parameter do
68
+ key :name, :id
69
+ key :in, :path
70
+ key :description, 'ID of email signup to fetch'
71
+ key :required, true
72
+ key :type, :string
73
+ end
74
+
75
+ response 200 do
76
+ key :description, 'Email signup details'
77
+ schema do
78
+ key :type, :object
79
+ property :email_signup do
80
+ key :'$ref', 'Workarea::Email::Signup'
81
+ end
82
+ end
83
+ end
84
+
85
+ response 404 do
86
+ key :description, 'Email signup not found'
87
+ schema do
88
+ key :type, :object
89
+ property :problem do
90
+ key :type, :string
91
+ end
92
+ property :params do
93
+ key :type, :object
94
+ key :additionalProperties, true
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
100
+
101
+ def show
102
+ @email_signup = Email::Signup.find(params[:id])
103
+ respond_with email_signup: @email_signup
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,268 @@
1
+ module Workarea
2
+ module Api
3
+ module Admin
4
+ class FulfillmentsController < Admin::ApplicationController
5
+ before_action :find_fulfillment, except: [:index, :create, :bulk]
6
+
7
+ swagger_path '/fulfillments' do
8
+ operation :get do
9
+ key :summary, 'All Fulfillments'
10
+ key :description, 'Returns all fulfillments from the system'
11
+ key :operationId, 'listFulfillments'
12
+ key :produces, ['application/json']
13
+
14
+ parameter do
15
+ key :name, :page
16
+ key :in, :query
17
+ key :description, 'Current page'
18
+ key :required, false
19
+ key :type, :integer
20
+ key :default, 1
21
+ end
22
+ parameter do
23
+ key :name, :sort_by
24
+ key :in, :query
25
+ key :description, 'Field on which to sort (see responses for possible values)'
26
+ key :required, false
27
+ key :type, :string
28
+ key :default, 'created_at'
29
+ end
30
+ parameter do
31
+ key :name, :sort_direction
32
+ key :in, :query
33
+ key :description, 'Direction for sort by'
34
+ key :type, :string
35
+ key :enum, %w(asc desc)
36
+ key :default, 'desc'
37
+ end
38
+
39
+ response 200 do
40
+ key :description, 'Fulfillments'
41
+ schema do
42
+ key :type, :object
43
+ property :categories do
44
+ key :type, :array
45
+ items do
46
+ key :'$ref', 'Workarea::Fulfillment'
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+ def index
55
+ @fulfillments = Fulfillment
56
+ .all
57
+ .order_by(sort_field => sort_direction)
58
+ .page(params[:page])
59
+
60
+ respond_with fulfillments: @fulfillments
61
+ end
62
+
63
+ swagger_path '/fulfillments/{id}' do
64
+ operation :get do
65
+ key :summary, 'Find Fulfillment by ID'
66
+ key :description, 'Returns a single fulfillment'
67
+ key :operationId, 'showFulfillment'
68
+
69
+ parameter do
70
+ key :name, :id
71
+ key :in, :path
72
+ key :description, 'ID of fulfillment to fetch'
73
+ key :required, true
74
+ key :type, :string
75
+ end
76
+
77
+ response 200 do
78
+ key :description, 'Fulfillment details'
79
+ schema do
80
+ key :'$ref', 'Workarea::Fulfillment'
81
+ end
82
+ end
83
+
84
+ response 404 do
85
+ key :description, 'Fulfillment not found'
86
+ schema do
87
+ key :type, :object
88
+ property :problem do
89
+ key :type, :string
90
+ end
91
+ property :params do
92
+ key :type, :object
93
+ key :additionalProperties, true
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
99
+
100
+ def show
101
+ respond_with fulfillment: @fulfillment
102
+ end
103
+
104
+ swagger_path '/fulfillments/{id}/ship_items' do
105
+ operation :post do
106
+ key :summary, 'Mark Items as Shipped'
107
+ key :description, 'Marks items in a fulfillment as shipped (sent to customer)'
108
+ key :operationId, 'markItemsAsShipped'
109
+
110
+ parameter do
111
+ key :name, :id
112
+ key :in, :path
113
+ key :description, 'ID of fulfillment'
114
+ key :required, true
115
+ key :type, :string
116
+ end
117
+
118
+ parameter do
119
+ key :name, :body
120
+ key :in, :body
121
+ key :required, true
122
+ schema do
123
+ key :type, :object
124
+ key :required, %i(tracking_number items)
125
+ property :tracking_number do
126
+ key :type, :string
127
+ key :description, 'Tracking number being shipped'
128
+ end
129
+ property :items do
130
+ key :type, :array
131
+ items do
132
+ key :type, :object
133
+ property :id do
134
+ key :type, :string
135
+ key :description, 'The order item ID for the item being shipped'
136
+ end
137
+ property :quantity do
138
+ key :type, :integer
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end
144
+
145
+ response 201 do
146
+ key :description, 'Fulfillment details'
147
+ schema do
148
+ key :type, :object
149
+ property :fulfillment do
150
+ key :'$ref', 'Workarea::Fulfillment'
151
+ end
152
+ end
153
+ end
154
+
155
+ response 404 do
156
+ key :description, 'Fulfillment not found'
157
+ schema do
158
+ key :type, :object
159
+ property :problem do
160
+ key :type, :string
161
+ end
162
+ property :params do
163
+ key :type, :object
164
+ key :additionalProperties, true
165
+ end
166
+ end
167
+ end
168
+ end
169
+ end
170
+
171
+ def ship_items
172
+ if @fulfillment.ship_items(params[:tracking_number], items)
173
+ respond_with(
174
+ { fulfillment: @fulfillment },
175
+ { location: fulfillment_path(@fulfillment) }
176
+ )
177
+ else
178
+ raise Mongoid::Errors::Validations.new(@fulfillment)
179
+ end
180
+ end
181
+
182
+ swagger_path '/fulfillments/{id}/cancel_items' do
183
+ operation :post do
184
+ key :summary, 'Mark Items as Canceled'
185
+ key :description, 'Marks items in a fulfillment as canceled (will not be sent to customer)'
186
+ key :operationId, 'markItemsAsCanceled'
187
+
188
+ parameter do
189
+ key :name, :id
190
+ key :in, :path
191
+ key :description, 'ID of fulfillment'
192
+ key :required, true
193
+ key :type, :string
194
+ end
195
+
196
+ parameter do
197
+ key :name, :body
198
+ key :in, :body
199
+ key :required, true
200
+ schema do
201
+ key :type, :object
202
+ key :required, %i(items)
203
+ property :items do
204
+ key :type, :array
205
+ items do
206
+ key :type, :object
207
+ property :id do
208
+ key :type, :string
209
+ key :description, 'The order item ID for the item being canceled'
210
+ end
211
+ property :quantity do
212
+ key :type, :integer
213
+ end
214
+ end
215
+ end
216
+ end
217
+ end
218
+
219
+ response 201 do
220
+ key :description, 'Fulfillment details'
221
+ schema do
222
+ key :type, :object
223
+ property :fulfillment do
224
+ key :'$ref', 'Workarea::Fulfillment'
225
+ end
226
+ end
227
+ end
228
+
229
+ response 404 do
230
+ key :description, 'Fulfillment not found'
231
+ schema do
232
+ key :type, :object
233
+ property :problem do
234
+ key :type, :string
235
+ end
236
+ property :params do
237
+ key :type, :object
238
+ key :additionalProperties, true
239
+ end
240
+ end
241
+ end
242
+ end
243
+ end
244
+
245
+ def cancel_items
246
+ if @fulfillment.cancel_items(items)
247
+ respond_with(
248
+ { fulfillment: @fulfillment },
249
+ { location: fulfillment_path(@fulfillment) }
250
+ )
251
+ else
252
+ raise Mongoid::Errors::Validations.new(@fulfillment)
253
+ end
254
+ end
255
+
256
+ private
257
+
258
+ def find_fulfillment
259
+ @fulfillment = Fulfillment.find(params[:id])
260
+ end
261
+
262
+ def items
263
+ Array(params[:items]).map(&:to_h)
264
+ end
265
+ end
266
+ end
267
+ end
268
+ end