Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Rest API - Namespace error handling #5319

Merged
merged 2 commits into from
Dec 7, 2021

Conversation

mikejolley
Copy link
Member

Prevents an error calling get_data() on the wrong object, if a WP_Error object is returned for whatever reason e.g. the endpoints not being registered.

Also fixes warnings from returned types.

Fixes #4683

Testing

This error is not reproducible without 3rd party code. I forced an error by swapping the wc/store when calling the function to something invalid to ensure no fatal error occurred. Nothing a user can test here.

Changelog

Add error handling to get_routes_from_namespace method.

@mikejolley mikejolley self-assigned this Dec 6, 2021
@mikejolley mikejolley modified the milestone: 6.5.0 Dec 6, 2021
@rubikuserbot rubikuserbot requested review from a team and nielslange and removed request for a team December 6, 2021 13:28
@github-actions
Copy link
Contributor

github-actions bot commented Dec 6, 2021

Size Change: 0 B

Total Size: 1.04 MB

ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 6.21 kB
build/active-filters.js 7.08 kB
build/all-products-frontend.js 22.2 kB
build/all-products.js 32.9 kB
build/all-reviews.js 8.31 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button--atomic-block-components/image---a7e2bb9b.js 2.77 kB
build/atomic-block-components/add-to-cart--atomic-block-components/button.js 1.49 kB
build/atomic-block-components/add-to-cart-frontend.js 6.87 kB
build/atomic-block-components/add-to-cart.js 6.44 kB
build/atomic-block-components/button-frontend.js 1.48 kB
build/atomic-block-components/button.js 851 B
build/atomic-block-components/category-list-frontend.js 457 B
build/atomic-block-components/category-list.js 457 B
build/atomic-block-components/image-frontend.js 1.38 kB
build/atomic-block-components/image.js 1.05 kB
build/atomic-block-components/price-frontend.js 1.74 kB
build/atomic-block-components/price.js 1.69 kB
build/atomic-block-components/rating-frontend.js 553 B
build/atomic-block-components/rating.js 554 B
build/atomic-block-components/sale-badge-frontend.js 626 B
build/atomic-block-components/sale-badge.js 624 B
build/atomic-block-components/sku-frontend.js 385 B
build/atomic-block-components/sku.js 385 B
build/atomic-block-components/stock-indicator-frontend.js 584 B
build/atomic-block-components/stock-indicator.js 586 B
build/atomic-block-components/summary-frontend.js 874 B
build/atomic-block-components/summary.js 874 B
build/atomic-block-components/tag-list-frontend.js 459 B
build/atomic-block-components/tag-list.js 457 B
build/atomic-block-components/title-frontend.js 1.11 kB
build/atomic-block-components/title.js 1.11 kB
build/attribute-filter-frontend.js 16.6 kB
build/attribute-filter.js 10.8 kB
build/blocks-checkout.js 20.8 kB
build/cart-blocks/accepted-payment-methods-frontend.js 1.14 kB
build/cart-blocks/checkout-button-frontend.js 1.14 kB
build/cart-blocks/empty-cart-frontend.js 346 B
build/cart-blocks/express-payment-frontend.js 4.81 kB
build/cart-blocks/filled-cart-frontend.js 769 B
build/cart-blocks/items-frontend.js 298 B
build/cart-blocks/line-items-frontend.js 5.12 kB
build/cart-blocks/order-summary-frontend.js 8.95 kB
build/cart-blocks/totals-frontend.js 320 B
build/cart-frontend.js 49.1 kB
build/cart.js 44.8 kB
build/checkout-blocks/actions-frontend.js 1.44 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.24 kB
build/checkout-blocks/billing-address-frontend.js 890 B
build/checkout-blocks/contact-information-frontend.js 2.94 kB
build/checkout-blocks/express-payment-frontend.js 5.11 kB
build/checkout-blocks/fields-frontend.js 343 B
build/checkout-blocks/order-note-frontend.js 1.13 kB
build/checkout-blocks/order-summary-frontend.js 11.4 kB
build/checkout-blocks/payment-frontend.js 7.49 kB
build/checkout-blocks/shipping-address-frontend.js 976 B
build/checkout-blocks/shipping-methods-frontend.js 4.89 kB
build/checkout-blocks/terms-frontend.js 1.22 kB
build/checkout-blocks/totals-frontend.js 323 B
build/checkout-frontend.js 51.3 kB
build/checkout.js 47.9 kB
build/featured-category.js 6.67 kB
build/featured-product.js 8.04 kB
build/handpicked-products.js 5.38 kB
build/legacy-template.js 2.05 kB
build/mini-cart-component-frontend.js 40.9 kB
build/mini-cart-contents.js 1.81 kB
build/mini-cart-frontend.js 1.76 kB
build/mini-cart.js 6.23 kB
build/price-filter-frontend.js 12.4 kB
build/price-filter.js 8.62 kB
build/price-format.js 1.19 kB
build/product-best-sellers.js 5.57 kB
build/product-categories.js 3.46 kB
build/product-category.js 6.44 kB
build/product-new.js 5.73 kB
build/product-on-sale.js 6.11 kB
build/product-search.js 2.47 kB
build/product-tag.js 5.81 kB
build/product-top-rated.js 5.7 kB
build/products-by-attribute.js 6.61 kB
build/reviews-by-category.js 9.96 kB
build/reviews-by-product.js 11 kB
build/reviews-frontend.js 7.2 kB
build/single-product-frontend.js 25.5 kB
build/single-product.js 8.5 kB
build/stock-filter-frontend.js 6.8 kB
build/stock-filter.js 6.82 kB
build/vendors--atomic-block-components/add-to-cart--cart-blocks/order-summary--checkout-blocks/billing-ad--c5eb4dcd-frontend.js 16.1 kB
build/vendors--atomic-block-components/add-to-cart-frontend.js 4.45 kB
build/vendors--atomic-block-components/price--cart-blocks/line-items--cart-blocks/order-summary--checkout--8a3571de-frontend.js 5.71 kB
build/vendors--cart-blocks/line-items--checkout-blocks/order-summary-frontend.js 3.14 kB
build/vendors--cart-blocks/order-summary--checkout-blocks/billing-address--checkout-blocks/order-summary---eb4d2cec-frontend.js 5.02 kB
build/wc-blocks-data.js 8.84 kB
build/wc-blocks-editor-style-rtl.css 15.8 kB
build/wc-blocks-editor-style.css 15.8 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 949 B
build/wc-blocks-registry.js 2.69 kB
build/wc-blocks-shared-context.js 1.51 kB
build/wc-blocks-shared-hocs.js 1.14 kB
build/wc-blocks-style-rtl.css 21.1 kB
build/wc-blocks-style.css 21.1 kB
build/wc-blocks-vendors-style-rtl.css 1.37 kB
build/wc-blocks-vendors-style.css 1.37 kB
build/wc-blocks-vendors.js 254 kB
build/wc-blocks.js 2.96 kB
build/wc-payment-method-bacs.js 820 B
build/wc-payment-method-cheque.js 816 B
build/wc-payment-method-cod.js 912 B
build/wc-payment-method-paypal.js 838 B
build/wc-payment-method-stripe.js 11.1 kB
build/wc-settings.js 2.6 kB

compressed-size-action

Copy link
Member

@nielslange nielslange left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🚢

@github-actions github-actions bot added this to the 6.6.0 milestone Dec 7, 2021
@mikejolley mikejolley merged commit 67a9aef into trunk Dec 7, 2021
@mikejolley mikejolley deleted the fix/4683-namespace-error-handling branch December 7, 2021 15:04
jonny-bull pushed a commit to jonny-bull/woocommerce-gutenberg-products-block that referenced this pull request Dec 14, 2021
* get_routes_from_namespace needs to handle WP_Error responses

* is_request_to_store_api is not static
jonny-bull pushed a commit to jonny-bull/woocommerce-gutenberg-products-block that referenced this pull request Dec 16, 2021
* get_routes_from_namespace needs to handle WP_Error responses

* is_request_to_store_api is not static
@mikejolley mikejolley added the focus: rest api Work impacting REST api routes. label Dec 20, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
focus: rest api Work impacting REST api routes.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add error handling for Automattic\WooCommerceBlocks\RestApi::get_routes_from_namespace().
2 participants