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

Fix product reviews schema date fields to use new (WP 5.5) date-time format #3109

Merged
merged 2 commits into from Sep 3, 2020

Conversation

haszari
Copy link
Member

@haszari haszari commented Sep 3, 2020

Fixes #3005

This PR fixes the schema for product reviews API endpoint.

In WordPress 5.5, the type must be one of the primitive types; previously we had date-time.

Schemas can declare the intended format of type: string, and for our dates we should use date-time aka RFC3339.

So, this PR uses type: string, format: date-time for the two review date fields.

I did a quick search to see if there were other API dates that should use this format - looks like this is the only API affected.

To test this I added some reviews and an All Reviews block and checked the response.

Screenshots

Screen Shot 2020-09-03 at 3 57 51 PM

How to test the changes in this Pull Request:

  1. Add some reviews.
  2. Add an all reviews block.
  3. View on front end and inspect API response, compare with schema.

I only tested with WordPress 5.5 - should we test with 5.3 or 5.4 as well?

Also keen to confirm this fixes the doing it wrong error - is there a way to reproduce that (on main/without these changes)? Or is this only validated when POSTing?

Changelog

dev: Corrected schema for date fields in product reviews API.

@haszari haszari requested a review from a team as a code owner September 3, 2020 04:09
@haszari haszari requested review from Aljullu and removed request for a team September 3, 2020 04:09
@haszari haszari self-assigned this Sep 3, 2020
@haszari haszari added this to the 3.4.0 milestone Sep 3, 2020
@haszari haszari added focus: rest api Work impacting REST api routes. status: needs review labels Sep 3, 2020
@github-actions
Copy link
Contributor

github-actions bot commented Sep 3, 2020

Size Change: 0 B

Total Size: 1.11 MB

ℹ️ View Unchanged
Filename Size Change
build/active-filters-frontend.js 8.78 kB 0 B
build/active-filters.js 8.85 kB 0 B
build/all-products-frontend.js 31.2 kB 0 B
build/all-products.js 35.7 kB 0 B
build/all-reviews.js 9.79 kB 0 B
build/atomic-block-components/add-to-cart-frontend.js 8.89 kB 0 B
build/atomic-block-components/add-to-cart.js 7.46 kB 0 B
build/atomic-block-components/add-to-cart~atomic-block-components/button.js 3.16 kB 0 B
build/atomic-block-components/add-to-cart~atomic-block-components/image~atomic-block-components/title.js 335 B 0 B
build/atomic-block-components/button-frontend.js 2.02 kB 0 B
build/atomic-block-components/button.js 835 B 0 B
build/atomic-block-components/category-list-frontend.js 469 B 0 B
build/atomic-block-components/category-list.js 475 B 0 B
build/atomic-block-components/image-frontend.js 1.71 kB 0 B
build/atomic-block-components/image.js 1.15 kB 0 B
build/atomic-block-components/price-frontend.js 2.1 kB 0 B
build/atomic-block-components/price.js 2.13 kB 0 B
build/atomic-block-components/rating-frontend.js 524 B 0 B
build/atomic-block-components/rating.js 527 B 0 B
build/atomic-block-components/sale-badge-frontend.js 863 B 0 B
build/atomic-block-components/sale-badge.js 865 B 0 B
build/atomic-block-components/sku-frontend.js 389 B 0 B
build/atomic-block-components/sku.js 394 B 0 B
build/atomic-block-components/stock-indicator-frontend.js 568 B 0 B
build/atomic-block-components/stock-indicator.js 571 B 0 B
build/atomic-block-components/summary-frontend.js 918 B 0 B
build/atomic-block-components/summary.js 925 B 0 B
build/atomic-block-components/tag-list-frontend.js 466 B 0 B
build/atomic-block-components/tag-list.js 472 B 0 B
build/atomic-block-components/title-frontend.js 1.23 kB 0 B
build/atomic-block-components/title.js 1.06 kB 0 B
build/attribute-filter-frontend.js 18.1 kB 0 B
build/attribute-filter.js 12.4 kB 0 B
build/blocks.js 3.54 kB 0 B
build/cart-frontend.js 69 kB 0 B
build/cart.js 37.4 kB 0 B
build/checkout-frontend.js 84.2 kB 0 B
build/checkout.js 40.8 kB 0 B
build/editor-rtl.css 13.9 kB 0 B
build/editor.css 13.9 kB 0 B
build/featured-category.js 7.72 kB 0 B
build/featured-product.js 9.97 kB 0 B
build/handpicked-products.js 7.37 kB 0 B
build/price-filter-frontend.js 14.4 kB 0 B
build/price-filter.js 10.3 kB 0 B
build/product-best-sellers.js 7.44 kB 0 B
build/product-categories.js 3.23 kB 0 B
build/product-category.js 8.38 kB 0 B
build/product-new.js 7.6 kB 0 B
build/product-on-sale.js 7.99 kB 0 B
build/product-search.js 3.56 kB 0 B
build/product-tag.js 6.52 kB 0 B
build/product-top-rated.js 7.57 kB 0 B
build/products-by-attribute.js 8.31 kB 0 B
build/reviews-by-category.js 11.8 kB 0 B
build/reviews-by-product.js 13.4 kB 0 B
build/reviews-frontend.js 9.37 kB 0 B
build/single-product-frontend.js 34 kB 0 B
build/single-product.js 10.1 kB 0 B
build/style-rtl.css 18 kB 0 B
build/style.css 18 kB 0 B
build/vendors-style-rtl.css 1.03 kB 0 B
build/vendors-style.css 1.03 kB 0 B
build/vendors.js 416 kB 0 B
build/vendors~atomic-block-components/price-frontend.js 5.65 kB 0 B
build/wc-blocks-data.js 7.09 kB 0 B
build/wc-blocks-middleware.js 931 B 0 B
build/wc-blocks-registry.js 2.28 kB 0 B
build/wc-payment-method-bacs.js 790 B 0 B
build/wc-payment-method-cheque.js 787 B 0 B
build/wc-payment-method-cod.js 875 B 0 B
build/wc-payment-method-paypal.js 831 B 0 B
build/wc-payment-method-stripe.js 11.9 kB 0 B
build/wc-settings.js 2.33 kB 0 B
build/wc-shared-context.js 1.53 kB 0 B
build/wc-shared-hocs.js 1.66 kB 0 B

compressed-size-action

@haszari
Copy link
Member Author

haszari commented Sep 3, 2020

I notice that the dates are both the same - one maybe should have a timezone offset. Not sure if this is a bug, or if so what impact it would have…

Copy link
Contributor

@Aljullu Aljullu left a comment

Choose a reason for hiding this comment

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

I only tested with WordPress 5.5 - should we test with 5.3 or 5.4 as well?

I tested with 5.4 and everything looked fine. 👌

I notice that the dates are both the same - one maybe should have a timezone offset. Not sure if this is a bug, or if so what impact it would have…

That should depend on the store timezone (in Settings > General > Timezone) that was selected when the review was written. Maybe you had UTC+0?

@haszari
Copy link
Member Author

haszari commented Sep 3, 2020

That should depend on the store timezone (in Settings > General > Timezone) that was selected when the review was written. Maybe you had UTC+0?

Yep that was it 👍

@haszari haszari merged commit 7b7644f into main Sep 3, 2020
@haszari haszari deleted the fix/rest-schema-datetime-type branch September 3, 2020 20:23
@nerrad nerrad added the type: bug The issue/PR concerns a confirmed bug. label Sep 14, 2020
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. type: bug The issue/PR concerns a confirmed bug.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix incorrect schema for ProductReviewSchema on date-time types
4 participants