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.
- checksums.yaml +4 -4
- data/.eslintrc.json +35 -0
- data/.github/workflows/ci.yml +35 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +2 -0
- data/.stylelintrc.json +8 -0
- data/CHANGELOG.md +97 -7
- data/Gemfile +1 -2
- data/README.md +14 -1
- data/Rakefile +18 -8
- data/admin/app/controllers/workarea/api/admin/categories_controller.rb +6 -0
- data/admin/app/controllers/workarea/api/admin/content_assets_controller.rb +6 -0
- data/admin/app/controllers/workarea/api/admin/content_controller.rb +6 -0
- data/admin/app/controllers/workarea/api/admin/discounts_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/email_signups_controller.rb +20 -4
- data/admin/app/controllers/workarea/api/admin/fulfillments_controller.rb +6 -1
- data/admin/app/controllers/workarea/api/admin/inventory_skus_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/navigation_menus_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/navigation_taxons_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/orders_controller.rb +19 -1
- data/admin/app/controllers/workarea/api/admin/pages_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/payment_profiles_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/payment_transactions_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/payments_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/pricing_skus_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/products_controller.rb +11 -4
- data/admin/app/controllers/workarea/api/admin/promo_code_lists_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/recommendation_settings_controller.rb +1 -1
- data/admin/app/controllers/workarea/api/admin/redirects_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/releases_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/shipping_services_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/shippings_controller.rb +7 -0
- data/admin/app/controllers/workarea/api/admin/swagger_controller.rb +33 -0
- data/admin/app/controllers/workarea/api/admin/tax_categories_controller.rb +2 -0
- data/admin/app/controllers/workarea/api/admin/users_controller.rb +28 -14
- data/admin/app/models/workarea/api/admin/date_filtering.rb +27 -0
- data/admin/lib/workarea/api/admin/engine.rb +11 -0
- data/admin/test/documentation/workarea/api/admin/email_signups_documentation_test.rb +14 -2
- data/admin/test/documentation/workarea/api/admin/global_functionality_documentation_test.rb +140 -0
- data/admin/test/documentation/workarea/api/admin/orders_documentation_test.rb +13 -6
- data/admin/test/documentation/workarea/api/admin/users_documentation_test.rb +14 -2
- data/admin/test/dummy/config/initializers/session_store.rb +3 -1
- data/admin/test/integration/workarea/api/admin/categories_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/content_assets_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/content_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/discounts_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/email_signups_integration_test.rb +38 -1
- data/admin/test/integration/workarea/api/admin/fulfillments_integration_test.rb +22 -0
- data/admin/test/integration/workarea/api/admin/inventory_skus_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/navigation_menus_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/navigation_taxons_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/orders_integration_test.rb +41 -2
- data/admin/test/integration/workarea/api/admin/pages_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/payment_profiles_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/payment_transactions_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/payments_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/pricing_skus_integration_test.rb +32 -0
- data/admin/test/integration/workarea/api/admin/products_integration_test.rb +35 -0
- data/admin/test/integration/workarea/api/admin/promo_code_lists_integration_test.rb +31 -0
- data/admin/test/integration/workarea/api/admin/recommendation_settings_integration_test.rb +14 -0
- data/admin/test/integration/workarea/api/admin/redirects_integration_test.rb +31 -0
- data/admin/test/integration/workarea/api/admin/releases_integration_test.rb +31 -0
- data/admin/test/integration/workarea/api/admin/shipping_services_integration_test.rb +31 -0
- data/admin/test/integration/workarea/api/admin/shippings_integration_test.rb +31 -0
- data/admin/test/integration/workarea/api/admin/tax_categories_integration_test.rb +31 -0
- data/admin/test/integration/workarea/api/admin/users_integration_test.rb +44 -1
- data/admin/workarea-api-admin.gemspec +2 -2
- data/app/views/workarea/api/docs/nav.haml +12 -0
- data/doc/api/admin/categories/bulk_upserting_categories.json +8 -4
- data/doc/api/admin/categories/creating_a_category.json +11 -8
- data/doc/api/admin/categories/listing_categories.json +8 -5
- data/doc/api/admin/categories/removing_a_category.json +8 -4
- data/doc/api/admin/categories/showing_a_category.json +10 -7
- data/doc/api/admin/categories/updating_a_category.json +9 -5
- data/doc/api/admin/category_product_rules/creating_a_category_product_rule.json +11 -8
- data/doc/api/admin/category_product_rules/listing_category_product_rules.json +10 -7
- data/doc/api/admin/category_product_rules/removing_a_category_product_rule.json +8 -4
- data/doc/api/admin/category_product_rules/updating_a_category_product_rule.json +8 -4
- data/doc/api/admin/content/bulk_upserting_content.json +8 -4
- data/doc/api/admin/content/creating_content.json +11 -8
- data/doc/api/admin/content/listing_content.json +8 -5
- data/doc/api/admin/content/showing_content.json +10 -7
- data/doc/api/admin/content/updating_content.json +8 -4
- data/doc/api/admin/content_assets/bulk_upserting_content_assets.json +8 -4
- data/doc/api/admin/content_assets/creating_a_content_asset.json +11 -8
- data/doc/api/admin/content_assets/listing_content_assets.json +8 -5
- data/doc/api/admin/content_assets/removing_a_content_asset.json +8 -4
- data/doc/api/admin/content_assets/showing_a_content_asset.json +10 -7
- data/doc/api/admin/content_assets/updating_a_content_asset.json +9 -5
- data/doc/api/admin/discounts/creating_a_discount.json +11 -8
- data/doc/api/admin/discounts/listing_discounts.json +8 -5
- data/doc/api/admin/discounts/removing_a_discount.json +8 -4
- data/doc/api/admin/discounts/showing_a_discount.json +10 -7
- data/doc/api/admin/discounts/updating_discounts.json +8 -4
- data/doc/api/admin/email_signups/listing_email_signups.json +7 -4
- data/doc/api/admin/email_signups/showing_an_email_signup.json +10 -12
- data/doc/api/admin/email_signups/showing_an_email_signup_by_email.json +47 -0
- data/doc/api/admin/email_signups/showing_an_email_signup_by_id.json +47 -0
- data/doc/api/admin/fulfillment/listing_fulfillments.json +7 -4
- data/doc/api/admin/fulfillment/marking_items_as_canceled.json +9 -6
- data/doc/api/admin/fulfillment/marking_items_as_shipped.json +9 -6
- data/doc/api/admin/fulfillment/showing_fulfillment.json +7 -4
- data/doc/api/admin/global_functionality/dealing_with_locales.json +86 -0
- data/doc/api/admin/global_functionality/filtering_by_created_at_time_stamp.json +56 -0
- data/doc/api/admin/global_functionality/filtering_by_updated_time_stamp.json +56 -0
- data/doc/api/admin/global_functionality/paging_results.json +51 -0
- data/doc/api/admin/global_functionality/retrieving_addtional_pages_of_results.json +51 -0
- data/doc/api/admin/global_functionality/sorting_results.json +56 -0
- data/doc/api/admin/index.json +653 -578
- data/doc/api/admin/inventory_skus/bulk_upserting_inventory_skus.json +8 -4
- data/doc/api/admin/inventory_skus/creating_an_inventory_sku.json +9 -6
- data/doc/api/admin/inventory_skus/listing_inventory_skus.json +7 -4
- data/doc/api/admin/inventory_skus/removing_an_inventory_sku.json +6 -2
- data/doc/api/admin/inventory_skus/showing_an_inventory_sku.json +7 -4
- data/doc/api/admin/inventory_skus/updating_an_inventory_sku.json +6 -2
- data/doc/api/admin/navigation_menus/creating_a_menu.json +11 -8
- data/doc/api/admin/navigation_menus/listing_menus.json +8 -5
- data/doc/api/admin/navigation_menus/removing_a_navigation_menu.json +8 -4
- data/doc/api/admin/navigation_menus/showing_a_navigation_menu.json +10 -7
- data/doc/api/admin/navigation_menus/updating_a_navigation_menus.json +8 -4
- data/doc/api/admin/navigation_taxonomy/bulk_upserting_navigation_taxons.json +8 -4
- data/doc/api/admin/navigation_taxonomy/creating_a_taxon.json +10 -7
- data/doc/api/admin/navigation_taxonomy/listing_taxons.json +7 -4
- data/doc/api/admin/navigation_taxonomy/removing_a_navigation_taxon.json +8 -4
- data/doc/api/admin/navigation_taxonomy/showing_a_navigation_taxon.json +9 -6
- data/doc/api/admin/navigation_taxonomy/updating_a_navigation_taxons.json +8 -4
- data/doc/api/admin/orders/listing_orders.json +8 -5
- data/doc/api/admin/orders/showing_an_order.json +8 -5
- data/doc/api/admin/orders/viewing_orders_by_date_range.json +17 -9
- data/doc/api/admin/pages/bulk_upserting_pages.json +8 -4
- data/doc/api/admin/pages/creating_a_page.json +11 -8
- data/doc/api/admin/pages/listing_pages.json +8 -5
- data/doc/api/admin/pages/removing_a_page.json +8 -4
- data/doc/api/admin/pages/showing_a_page.json +10 -7
- data/doc/api/admin/pages/updating_a_page.json +9 -5
- data/doc/api/admin/payment_profiles/bulk_upserting_payment_profiles.json +8 -4
- data/doc/api/admin/payment_profiles/creating_a_payment_profile.json +10 -7
- data/doc/api/admin/payment_profiles/listing_payment_profiles.json +7 -4
- data/doc/api/admin/payment_profiles/removing_a_payment_profile.json +8 -4
- data/doc/api/admin/payment_profiles/showing_a_payment_profile.json +9 -6
- data/doc/api/admin/payment_profiles/updating_a_payment_profiles.json +8 -4
- data/doc/api/admin/payment_transactions/listing_payment_transactions.json +7 -4
- data/doc/api/admin/payment_transactions/showing_a_payment_transaction.json +9 -6
- data/doc/api/admin/payments/listing_payments.json +7 -4
- data/doc/api/admin/payments/showing_an_payment.json +7 -4
- data/doc/api/admin/prices/creating_a_pricing_sku_price.json +8 -5
- data/doc/api/admin/prices/listing_pricing_sku_prices.json +8 -5
- data/doc/api/admin/prices/removing_a_pricing_sku_price.json +8 -4
- data/doc/api/admin/prices/updating_a_pricing_sku_price.json +8 -4
- data/doc/api/admin/pricing_skus/bulk_upserting_pricing_skus.json +8 -4
- data/doc/api/admin/pricing_skus/creating_an_pricing_sku.json +10 -7
- data/doc/api/admin/pricing_skus/listing_pricing_skus.json +8 -5
- data/doc/api/admin/pricing_skus/removing_an_pricing_sku.json +6 -2
- data/doc/api/admin/pricing_skus/showing_an_pricing_sku.json +8 -5
- data/doc/api/admin/pricing_skus/updating_an_pricing_sku.json +6 -2
- data/doc/api/admin/product_images/creating_a_product_image_from_base64.json +11 -8
- data/doc/api/admin/product_images/creating_a_product_image_from_url.json +11 -8
- data/doc/api/admin/product_images/listing_product_images.json +10 -7
- data/doc/api/admin/product_images/removing_a_product_image.json +8 -4
- data/doc/api/admin/product_images/updating_a_product_image.json +8 -4
- data/doc/api/admin/products/bulk_upserting_products.json +8 -4
- data/doc/api/admin/products/creating_a_product.json +11 -8
- data/doc/api/admin/products/listing_products.json +8 -5
- data/doc/api/admin/products/removing_a_product.json +8 -4
- data/doc/api/admin/products/showing_a_product.json +10 -7
- data/doc/api/admin/products/updating_a_product.json +9 -5
- data/doc/api/admin/promo_code_lists/bulk_upserting_promo_code_lists.json +8 -4
- data/doc/api/admin/promo_code_lists/creating_a_promo_code_list.json +10 -7
- data/doc/api/admin/promo_code_lists/listing_promo_code_lists.json +7 -4
- data/doc/api/admin/promo_code_lists/removing_a_promo_code_list.json +8 -4
- data/doc/api/admin/promo_code_lists/showing_a_promo_code_list.json +9 -6
- data/doc/api/admin/promo_code_lists/updating_a_promo_code_list.json +8 -4
- data/doc/api/admin/recommendation_settings/showing_recommendation_settings.json +9 -6
- data/doc/api/admin/recommendation_settings/updating_recommendation_settings.json +8 -4
- data/doc/api/admin/redirects/bulk_upserting_redirects.json +8 -4
- data/doc/api/admin/redirects/creating_a_redirect.json +10 -7
- data/doc/api/admin/redirects/listing_redirects.json +7 -4
- data/doc/api/admin/redirects/removing_a_redirect.json +8 -4
- data/doc/api/admin/redirects/showing_a_redirect.json +9 -6
- data/doc/api/admin/redirects/updating_a_redirects.json +8 -4
- data/doc/api/admin/release_changes/adding_changes_to_a_release.json +10 -6
- data/doc/api/admin/releases/bulk_upserting_releases.json +8 -4
- data/doc/api/admin/releases/creating_a_release.json +11 -8
- data/doc/api/admin/releases/listing_releases.json +8 -5
- data/doc/api/admin/releases/removing_a_release.json +8 -4
- data/doc/api/admin/releases/showing_a_release.json +10 -7
- data/doc/api/admin/releases/updating_a_release.json +9 -5
- data/doc/api/admin/saved_addresses/creating_a_saved_address.json +10 -7
- data/doc/api/admin/saved_addresses/listing_saved_address.json +9 -6
- data/doc/api/admin/saved_addresses/removing_a_saved_address.json +8 -4
- data/doc/api/admin/saved_addresses/updating_a_saved_address.json +8 -4
- data/doc/api/admin/saved_credit_cards/creating_a_saved_credit_card.json +11 -8
- data/doc/api/admin/saved_credit_cards/listing_saved_credit_cards.json +9 -6
- data/doc/api/admin/saved_credit_cards/removing_a_saved_credit_card.json +8 -4
- data/doc/api/admin/saved_credit_cards/updating_a_saved_credit_card.json +8 -4
- data/doc/api/admin/shipping/listing_shipments.json +7 -4
- data/doc/api/admin/shipping/showing_a_shipment.json +9 -6
- data/doc/api/admin/shipping_rates/creating_a_shipping_rate.json +10 -7
- data/doc/api/admin/shipping_rates/listing_shipping_rates.json +9 -6
- data/doc/api/admin/shipping_rates/removing_a_shipping_rate.json +8 -4
- data/doc/api/admin/shipping_rates/updating_a_shipping_rate.json +8 -4
- data/doc/api/admin/shipping_services/bulk_upserting_shipping_services.json +8 -4
- data/doc/api/admin/shipping_services/creating_a_shipping_service.json +10 -7
- data/doc/api/admin/shipping_services/listing_shipping_services.json +7 -4
- data/doc/api/admin/shipping_services/removing_a_shipping_service.json +8 -4
- data/doc/api/admin/shipping_services/showing_a_shipping_service.json +10 -7
- data/doc/api/admin/shipping_services/updating_a_shipping_service.json +9 -5
- data/doc/api/admin/tax_categories/bulk_upserting_tax_categories.json +8 -4
- data/doc/api/admin/tax_categories/creating_a_tax_category.json +10 -7
- data/doc/api/admin/tax_categories/listing_tax_categories.json +8 -5
- data/doc/api/admin/tax_categories/removing_a_tax_category.json +8 -4
- data/doc/api/admin/tax_categories/showing_a_tax_category.json +10 -7
- data/doc/api/admin/tax_categories/updating_a_tax_categories.json +8 -4
- data/doc/api/admin/tax_rates/creating_a_tax_rate.json +12 -9
- data/doc/api/admin/tax_rates/listing_tax_rates.json +10 -7
- data/doc/api/admin/tax_rates/removing_a_tax_rate.json +8 -4
- data/doc/api/admin/tax_rates/updating_a_tax_rate.json +8 -4
- data/doc/api/admin/users/bulk_upserting_users.json +8 -4
- data/doc/api/admin/users/creating_a_user.json +11 -8
- data/doc/api/admin/users/listing_users.json +8 -5
- data/doc/api/admin/users/removing_a_user.json +8 -4
- data/doc/api/admin/users/showing_a_user.json +10 -12
- data/doc/api/admin/users/showing_a_user_by_email.json +47 -0
- data/doc/api/admin/users/showing_a_user_by_id.json +47 -0
- data/doc/api/admin/users/updating_a_user.json +9 -5
- data/doc/api/admin/variants/creating_a_product_variant.json +11 -8
- data/doc/api/admin/variants/listing_product_variants.json +10 -7
- data/doc/api/admin/variants/removing_a_product_variant.json +8 -4
- data/doc/api/admin/variants/updating_a_product_variant.json +8 -4
- data/doc/api/storefront/accounts/creating_an_account.json +8 -7
- data/doc/api/storefront/accounts/getting_account_details.json +9 -8
- data/doc/api/storefront/accounts/updating_an_account.json +9 -8
- data/doc/api/storefront/analytics/saving_a_category_view.json +19 -6
- data/doc/api/storefront/analytics/saving_a_product_view.json +19 -6
- data/doc/api/storefront/analytics/saving_a_search.json +19 -6
- data/doc/api/storefront/assets/showing_an_asset.json +10 -9
- data/doc/api/storefront/authentication/creating_an_authentication_token.json +10 -9
- data/doc/api/storefront/authentication/refreshing_an_authentication_token.json +10 -9
- data/doc/api/storefront/authentication/using_an_authentication_token.json +11 -10
- data/doc/api/storefront/cart/adding_a_promo_code.json +11 -10
- data/doc/api/storefront/cart/adding_an_item.json +11 -10
- data/doc/api/storefront/cart/creating_a_new_cart_for_a_user.json +10 -9
- data/doc/api/storefront/cart/creating_a_new_guest_cart.json +8 -7
- data/doc/api/storefront/cart/delete_an_item.json +11 -10
- data/doc/api/storefront/cart/listing_user_s_carts.json +10 -9
- data/doc/api/storefront/cart/showing_cart.json +11 -10
- data/doc/api/storefront/cart/updating_an_item.json +11 -10
- data/doc/api/storefront/categories/showing_a_category.json +9 -8
- data/doc/api/storefront/categories/showing_a_listing_of_categories.json +9 -8
- data/doc/api/storefront/checkout/completing_a_checkout.json +11 -10
- data/doc/api/storefront/checkout/failure_to_update_a_checkout.json +52 -0
- data/doc/api/storefront/checkout/showing_a_checkout.json +11 -10
- data/doc/api/storefront/checkout/updating_a_checkout.json +10 -9
- data/doc/api/storefront/contacts/creating_a_contact.json +8 -7
- data/doc/api/storefront/email_signups/creating_an_email_signup.json +8 -7
- data/doc/api/storefront/email_signups/showing_an_email_signup_content.json +8 -7
- data/doc/api/storefront/index.json +269 -257
- data/doc/api/storefront/menus/listing_menus.json +9 -8
- data/doc/api/storefront/menus/showing_a_menu.json +11 -10
- data/doc/api/storefront/orders/listing_the_user_s_orders.json +10 -9
- data/doc/api/storefront/orders/showing_an_order.json +11 -10
- data/doc/api/storefront/pages/showing_a_page.json +9 -8
- data/doc/api/storefront/password_resets/sending_a_forgot_password_email.json +9 -7
- data/doc/api/storefront/personalized_recommendations/showing_recommendations_with_a_session_id.json +11 -11
- data/doc/api/storefront/personalized_recommendations/showing_recommendations_with_authentication.json +11 -10
- data/doc/api/storefront/products/showing_a_product.json +9 -8
- data/doc/api/storefront/products/showing_a_product_with_a_specific_sku_selected.json +9 -8
- data/doc/api/storefront/recent_views/showing_recent_views_from_authentication.json +11 -10
- data/doc/api/storefront/recent_views/showing_recent_views_with_a_session_id.json +12 -12
- data/doc/api/storefront/recent_views/updating_recent_views_with_a_session_id.json +7 -5
- data/doc/api/storefront/recent_views/updating_recent_views_with_authentication.json +9 -7
- data/doc/api/storefront/saved_addresses/creating_a_saved_address.json +8 -7
- data/doc/api/storefront/saved_addresses/deleting_a_saved_address.json +8 -6
- data/doc/api/storefront/saved_addresses/listing_the_user_s_saved_addresses.json +10 -9
- data/doc/api/storefront/saved_addresses/showing_a_saved_address.json +9 -8
- data/doc/api/storefront/saved_addresses/updating_a_saved_address.json +9 -8
- data/doc/api/storefront/saved_credit_cards/creating_a_saved_credit_card.json +9 -8
- data/doc/api/storefront/saved_credit_cards/deleting_a_saved_credit_card.json +8 -6
- data/doc/api/storefront/saved_credit_cards/listing_the_user_s_saved_credit_cards.json +10 -9
- data/doc/api/storefront/saved_credit_cards/showing_a_saved_credit_card.json +9 -8
- data/doc/api/storefront/saved_credit_cards/updating_a_saved_credit_card.json +10 -9
- data/doc/api/storefront/searches/showing_search_autocomplete_suggestions.json +10 -9
- data/doc/api/storefront/searches/showing_search_results.json +9 -8
- data/doc/api/storefront/segmentation/specifying_session_count_for_segmentation.json +93 -0
- data/doc/api/storefront/segmentation/using_session_ids_for_segmenting_non_authenticated_users.json +93 -0
- data/doc/api/storefront/system_content/showing_system_content.json +9 -8
- data/doc/api/storefront/system_content/showing_the_home_page.json +9 -8
- data/doc/api/storefront/taxons/showing_a_taxon.json +11 -10
- data/doc/api/storefront/validation_errors/checkout_validation_errors.json +12 -11
- data/doc/api/storefront/validation_errors/general_validation_errors.json +5 -4
- data/lib/tasks/docs.rake +20 -0
- data/lib/workarea/api/documentation_test.rb +10 -1
- data/lib/workarea/api/version.rb +1 -1
- data/storefront/app/controllers/workarea/api/storefront/analytics_controller.rb +31 -19
- data/storefront/app/controllers/workarea/api/storefront/application_controller.rb +15 -2
- data/storefront/app/controllers/workarea/api/storefront/authentication.rb +6 -9
- data/storefront/app/controllers/workarea/api/storefront/categories_controller.rb +3 -1
- data/storefront/app/controllers/workarea/api/storefront/checkouts_controller.rb +0 -1
- data/storefront/app/controllers/workarea/api/storefront/menus_controller.rb +3 -1
- data/storefront/app/controllers/workarea/api/storefront/pages_controller.rb +3 -1
- data/storefront/app/controllers/workarea/api/storefront/products_controller.rb +3 -1
- data/storefront/app/controllers/workarea/api/storefront/recent_views_controller.rb +13 -26
- data/storefront/app/controllers/workarea/api/storefront/recommendations_controller.rb +2 -8
- data/storefront/app/controllers/workarea/api/storefront/searches_controller.rb +0 -12
- data/storefront/app/views/workarea/api/storefront/categories/show.json.jbuilder +1 -1
- data/storefront/app/views/workarea/api/storefront/email_signups/show.json.jbuilder +1 -1
- data/storefront/app/views/workarea/api/storefront/menus/_menu.json.jbuilder +1 -1
- data/storefront/app/views/workarea/api/storefront/pages/show.json.jbuilder +1 -1
- data/storefront/app/views/workarea/api/storefront/recent_views/show.json.jbuilder +0 -1
- data/storefront/app/views/workarea/api/storefront/searches/show.json.jbuilder +1 -1
- data/storefront/app/views/workarea/api/storefront/system_content/show.json.jbuilder +1 -1
- data/storefront/config/initializers/config.rb +19 -0
- data/storefront/lib/workarea/api/storefront.rb +1 -0
- data/storefront/lib/workarea/api/storefront/visit.decorator +52 -0
- data/storefront/test/documentation/workarea/api/storefront/checkouts_documentation_test.rb +21 -0
- data/storefront/test/documentation/workarea/api/storefront/segmentation_documentation_test.rb +104 -0
- data/storefront/test/documentation/workarea/api/storefront/validation_documentation_test.rb +1 -1
- data/storefront/test/dummy/config/initializers/session_store.rb +3 -1
- data/storefront/test/integration/workarea/api/storefront/analytics_integration_test.rb +12 -7
- data/storefront/test/integration/workarea/api/storefront/recent_views_integration_test.rb +38 -33
- data/storefront/test/integration/workarea/api/storefront/recommendations_integration_test.rb +1 -1
- data/storefront/test/integration/workarea/api/storefront/searches_integration_test.rb +0 -36
- data/storefront/test/integration/workarea/api/storefront/segments_integration_test.rb +218 -0
- data/storefront/workarea-api-storefront.gemspec +2 -2
- data/workarea-api.gemspec +1 -1
- metadata +32 -13
- data/doc/api/storefront/analytics/saving_a_search_abandonment.json +0 -38
- data/doc/api/storefront/analytics/saving_filters.json +0 -38
- data/storefront/app/controllers/workarea/api/storefront/user_activity.rb +0 -36
- 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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fa798507480bf8e3ebc57e56e44a7e80326c1ab0706052bb1fc5c4998625f524
|
|
4
|
+
data.tar.gz: 144a10f0ce2ac2159e893ce8a04b05036eb292013e8336ff41f54e155675a88f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 00be4719b696a19e4b78ef81e187743969f5c5892f6c58c6360d7ab91816478045fe4ffb5f0b05ee53b36d8c47bfb68bdd8d8bb84b996ada61a091171f098d0e
|
|
7
|
+
data.tar.gz: d024b0613c0b9a39b13c4cf165b5dddf1e3d56e910172204052cec175d4167e9db50a07efb558a1099c1f007bdd116c830ebb36437a2a4e43702175793de4d02
|
data/.eslintrc.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "eslint:recommended",
|
|
3
|
+
"rules": {
|
|
4
|
+
"semi": ["error", "always"],
|
|
5
|
+
"eqeqeq": ["error", "always"]
|
|
6
|
+
},
|
|
7
|
+
"globals": {
|
|
8
|
+
"window": true,
|
|
9
|
+
"document": true,
|
|
10
|
+
"WORKAREA": true,
|
|
11
|
+
"$": true,
|
|
12
|
+
"jQuery": true,
|
|
13
|
+
"_": true,
|
|
14
|
+
"feature": true,
|
|
15
|
+
"JST": true,
|
|
16
|
+
"Turbolinks": true,
|
|
17
|
+
"I18n": true,
|
|
18
|
+
"Chart": true,
|
|
19
|
+
"Dropzone": true,
|
|
20
|
+
"strftime": true,
|
|
21
|
+
"Waypoint": true,
|
|
22
|
+
"wysihtml": true,
|
|
23
|
+
"LocalTime": true,
|
|
24
|
+
"describe": true,
|
|
25
|
+
"after": true,
|
|
26
|
+
"afterEach": true,
|
|
27
|
+
"before": true,
|
|
28
|
+
"beforeEach": true,
|
|
29
|
+
"it": true,
|
|
30
|
+
"expect": true,
|
|
31
|
+
"sinon": true,
|
|
32
|
+
"fixture": true,
|
|
33
|
+
"chai": true
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
on: [push]
|
|
3
|
+
|
|
4
|
+
jobs:
|
|
5
|
+
static_analysis:
|
|
6
|
+
runs-on: ubuntu-latest
|
|
7
|
+
steps:
|
|
8
|
+
- uses: actions/checkout@v1
|
|
9
|
+
- uses: workarea-commerce/ci/bundler-audit@v1
|
|
10
|
+
- uses: workarea-commerce/ci/rubocop@v1
|
|
11
|
+
- uses: workarea-commerce/ci/eslint@v1
|
|
12
|
+
with:
|
|
13
|
+
args: '**/*.js'
|
|
14
|
+
|
|
15
|
+
admin_tests:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v1
|
|
19
|
+
- uses: actions/setup-ruby@v1
|
|
20
|
+
with:
|
|
21
|
+
ruby-version: 2.6.x
|
|
22
|
+
- uses: workarea-commerce/ci/test@v1
|
|
23
|
+
with:
|
|
24
|
+
command: cd admin && bin/rails app:workarea:test
|
|
25
|
+
|
|
26
|
+
storefront_tests:
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v1
|
|
30
|
+
- uses: actions/setup-ruby@v1
|
|
31
|
+
with:
|
|
32
|
+
ruby-version: 2.6.x
|
|
33
|
+
- uses: workarea-commerce/ci/test@v1
|
|
34
|
+
with:
|
|
35
|
+
command: cd storefront && bin/rails app:workarea:test
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
data/.stylelintrc.json
ADDED
data/CHANGELOG.md
CHANGED
|
@@ -1,25 +1,115 @@
|
|
|
1
|
-
Workarea Api 4.
|
|
1
|
+
Workarea Api 4.5.5 (2020-08-19)
|
|
2
2
|
--------------------------------------------------------------------------------
|
|
3
3
|
|
|
4
|
-
*
|
|
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
|
-
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
Workarea Api 4.5.3 (2020-03-26)
|
|
9
36
|
--------------------------------------------------------------------------------
|
|
10
37
|
|
|
11
|
-
*
|
|
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.
|
|
87
|
+
Workarea Api 4.5.0 (2019-11-26)
|
|
18
88
|
--------------------------------------------------------------------------------
|
|
19
89
|
|
|
20
|
-
*
|
|
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', '
|
|
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
|
+
[](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 '
|
|
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
|
-
#
|
|
76
|
+
# Build documentation
|
|
72
77
|
#
|
|
73
78
|
#
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
#
|
|
88
|
+
# Updating changelog
|
|
81
89
|
#
|
|
82
90
|
#
|
|
83
|
-
|
|
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/{
|
|
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
|