woocommerce/packages/php/remote-specs-validation
Moon da64238290
Add range operator in Remote Inbox Notification (#45201)
* Add range rule in Remote Inbox Notification

* Add changefile(s) from automation for the following project(s): woocommerce

* Add range

* Add changefile(s) from automation for the following project(s): packages/php/remote-specs-validation, woocommerce

* Update README.md

* Fix lint errors

* Make sure right-hand is an array with two elemetns -- range

* Update README

* Lint fixes

---------

Co-authored-by: github-actions <github-actions@github.com>
2024-02-29 13:02:38 -08:00
..
bin Add JSON schema files for remote spec validation (#44484) 2024-02-16 13:31:21 -08:00
bundles Add range operator in Remote Inbox Notification (#45201) 2024-02-29 13:02:38 -08:00
changelog Add range operator in Remote Inbox Notification (#45201) 2024-02-29 13:02:38 -08:00
schemas Add range operator in Remote Inbox Notification (#45201) 2024-02-29 13:02:38 -08:00
src Allow JSON schema string (#45151) 2024-02-27 00:34:41 -08:00
tests Add JSON schema files for remote spec validation (#44484) 2024-02-16 13:31:21 -08:00
README.md Add JSON schema files for remote spec validation (#44484) 2024-02-16 13:31:21 -08:00
changelog.md Remote Specs Testing package: Add new package (#44419) 2024-02-08 12:46:26 +13:00
composer.json Allow JSON schema string (#45151) 2024-02-27 00:34:41 -08:00
composer.lock Add JSON schema files for remote spec validation (#44484) 2024-02-16 13:31:21 -08:00
package.json pin simple-git in syncpack (#44902) 2024-02-29 13:30:24 -04:00
phpunit.xml Add JSON schema files for remote spec validation (#44484) 2024-02-16 13:31:21 -08:00

README.md

Remote Specification Validation

Installation

composer require woocommerce/remote-specs-validation

Available Schemas

Filename Endpoint Bundle
remote-inbox-notification.json https://woocommerce.com/wp-json/wccom/inbox-notifications/1.0/notifications.json remote-inbox-notification
payment-gateway-suggestions.json https://woocommerce.com/wp-json/wccom/payment-gateway-suggestions/1.0/suggestions.json payment-gateway-suggestions
obw-free-extensions.json https://woocommerce.com/wp-json/wccom/obw-free-extensions/3.0/extensions.json obw-free-extensions
wc-pay-promotions.json https://woocommerce.com/wp-json/wccom/payment-gateway-suggestions/1.0/payment-method/promotions.json wc-pay-promotions
shipping-partner-suggestions.json https://woocommerce.com/wp-json/wccom/shipping-partner-suggestions/1.0/suggestions.json shipping-partner-suggestions

Working with Schema

If it's your first time working with JSON Schema, we highly recommend reading https://json-schema.org/learn/getting-started-step-by-step first.

  1. Open a schema file from schemas directory.
  2. Make changes.
  3. Run ./bin/build schemas/:name-of-schema-file
  4. Bundled schema file will be saved in bundles directory.

Validation Examples

use Automattic\WooCommerce\Tests\RemoteSpecsValidation\RemoteSpecValidator;
$validator = RemoteSpecValidator::create_from_bundle( 'remote-inbox-notification' );

$spec = json_decode( file_get_contents(":your-remote-inbox-noficiation-json") );

$result = $validator->validate( $spec );

if ( !$result->is_valid() ) {
	var_dump( $result->get_errors() );
} else {
	var_dump('everyting looks good!');
}