Commit Graph

10 Commits

Author SHA1 Message Date
Moon aaf7832ddb Feature/add logger to rin (https://github.com/woocommerce/woocommerce-admin/pull/7194)
* Add evaluation logger

* Update readme

* Use simplified log format

* Add a new line at the end

* Move constant checking to consumer level

* Rename constant name

* Check constant before checking the value

* Fix test

* Add changelog

* Move initialization of the logger to RuleEvaluator and use more generic constant name

* Remove the default source value

* Update readme.txt

Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>

* Update src/RemoteInboxNotifications/README.md

Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>

* Update src/RemoteInboxNotifications/RuleEvaluator.php

Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>

* Add soruce -- remote-inbox-notifications

* Move WC_ADMIN_DEBUG_RULE_EVALUATOR check to the logger

Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
2021-08-30 13:26:36 -07:00
Paul Sealock 40c22add0a Rule processing transformers: Add count rule (https://github.com/woocommerce/woocommerce-admin/pull/7037)
* Add count rule

* better return types

* rename test
2021-05-25 16:32:51 +12:00
Paul Sealock 3ba1afd0ab Rule Processing: pass in default (https://github.com/woocommerce/woocommerce-admin/pull/7009)
* pass default

* handle tests

* changelog
2021-05-25 16:23:49 +12:00
Moon e2d9a8792a Support transformers in remote inbox notifications (https://github.com/woocommerce/woocommerce-admin/pull/6948)
* Introduce Transformer to Remote Inbox Notification
* Added array_column, array_flatten, array_keys, array_search, array_values, and dot_notation transformers.
* Added tests
2021-05-13 21:27:35 -07:00
louwie17 d5800c1a7a Check if value for contains comparison is an array (https://github.com/woocommerce/woocommerce-admin/pull/6645)
* Add warning and default to empty array for contains operation, when value is not array

* Add changelog

* Move option is array check and warning to the OptionRuleProcessor

* Added a check for the new_value as well, given we do the same for the old_value
2021-03-25 08:55:36 -03:00
Bec Scott 61c189f456 Add option remote inbox notifications rule processor (https://github.com/woocommerce/woocommerce-admin/pull/5206)
* Add option remote inbox notifications rule processor

* Add default option value to option rule

Co-authored-by: Rebecca Scott <me@becdetat.com>
2020-10-13 08:47:12 +10:00
Claudio Sanches 073a3f706f Fix usage of "package" tag in file headers (https://github.com/woocommerce/woocommerce-admin/pull/4940)
* Don't require package tag or file comment inside src

* Removed package tag from files inside src

* Fixed tests directory in phpcs.xml.dist

* Fixed usage of package tag

* Fixed new classes

* Fixed coding standards

* Fixed coding standards in tests
2020-08-11 16:18:47 -03:00
Bec Scott e4bc71ffb8 Add product count rule (https://github.com/woocommerce/woocommerce-admin/pull/4334)
* Product count rule

# Conflicts:
#	src/RemoteInboxNotifications/GetRuleProcessor.php

# Conflicts:
#	src/RemoteInboxNotifications/GetRuleProcessor.php

* Use WC class to get products instead of a custom query

* Remove ProductsProvider

* Use total in product query

* Updates to suit parent branch

* Fixed return value

Co-authored-by: Rebecca Scott <me@becdetat.com>
2020-06-16 10:22:35 +10:00
Bec Scott e6a5866690 Add stored state between remote inbox notification runs (https://github.com/woocommerce/woocommerce-admin/pull/4260)
* Fix comment and convert if..elseif to switch

* Take out intermediate function

* make ProductsProvider a non-static class

* Adds RINDS data rule, and set up for woocommerce/woocommerce-admin#4223

# Conflicts:
#	src/RemoteInboxNotifications/EvaluateAndGetStatus.php

* Fix rebase issues

# Conflicts:
#	src/RemoteInboxNotifications/DataRuleProcessor.php

* Split product data setup out, use product query

# Conflicts:
#	src/RemoteInboxNotifications/RemoteInboxNotificationsEngine.php

* Remove RINDS references

* Remove unused products provider

* Add validation to the data rule processor

* Fix some issues that were failing tests

* Remove unused var

* Make data setup for products return the data object

* Rework product query

* Rename $data to $stored_state

* Fix condition in query

* Add time after wcadmin activation rule (https://github.com/woocommerce/woocommerce-admin/pull/4337)

* Add wcadmin active for rule

# Conflicts:
#	src/RemoteInboxNotifications/GetRuleProcessor.php

* Use DAY_IN_SECONDS constant

* Fix logic error

* Fix test naming

Co-authored-by: Rebecca Scott <me@becdetat.com>

* Add order count rule (https://github.com/woocommerce/woocommerce-admin/pull/4335)

* Order count rule

# Conflicts:
#	src/RemoteInboxNotifications/GetRuleProcessor.php

* Use default provider

Co-authored-by: Rebecca Scott <me@becdetat.com>

* Use correct 'return' value

* Move back to using a SQL query to get the product count

as the WC_Product_Query has issues during the product publish lifecycle. The product is initially published with a taxonomy term of uncategorized which isn't accepted by the query's filter.

* Change back to using WC_Product_Query, and do prelim init via admin_init action

* If there are no specs when running the engine, run the poller first then retry

* Fix some failing tests

* Don't perform init if we're feature toggled off

* Move feature check inside RIN engine class because the feature filter isn't ready during FeaturePlugin init

Co-authored-by: Rebecca Scott <me@becdetat.com>
2020-06-16 09:42:35 +10:00
Bec Scott a3ae3569c3 Remote inbox notification delivery (https://github.com/woocommerce/woocommerce-admin/pull/4143)
* Poll and persist specs

* Process specs into admin notes

* Add send at time rule processor

* Fix style issues

* Clear actions before recreating them to avoid dupes

* Trigger the RINDS engine when a plugin is activated

* Unit test SendAtTimeRuleProcessor

* Implement plugins activated rule processor

* Don't throw exception for unrecognised rule type. Also unit test around this.

* add url_is_action_query to tell whether to wrap the URL in wc_admin_url() call or not

* Add NOT rule

* revert change to install.php

* Drop unimplemented resend after dismissal rule

* Add OR rule

* Explicitly make "fail" a type of rule that can be applied to a spec

* Add plugin version rule processor

* Tidy up, don't need to pass $spec everywhere

* Remove meta record for action state - not really needed

* Move spec runner into it's own class, add some checks around re-unactioning a note

* Replace if..else with switch

* Just update the option

* Check that the JSON coming in is an array

* Change OR rule to accept an array of operands

* Add Pass rule processor

* Fix specs that are initially not published

* Rename send at rule to publish after

* Add publish before rule

* Remove unused interface

* Can't use PHP7's anonymous classes

* New notification: How to draw attention to your online store

* Add feature flag for rule-base inbox notes

* rename everything to RemoteInboxNotifications from RINDS

* Fix merge fail

* fix test

* Change preunactioned to pending

* Move feature flag check into Events.php

* Refactor reading a data source

* Rename poll_data_sources function

* Refactor EvaluateAndGetStatus::evaluate to take the rule evaluator directly

* Check that the response body exists

* Add validation and defensive checks

* Add rule processor interface

* Update note created time on status change

* Move non-test dependencies into processor constructors

* Update to proposed live URL

* Remove setting icon as it's being deprecated

Co-authored-by: Rebecca Scott <me@becdetat.com>
2020-06-05 11:51:25 +10:00