-
Notifications
You must be signed in to change notification settings - Fork 33
REST API Refactor: Settings namespace implementation #2735
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
REST API Refactor: Settings namespace implementation #2735
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Base branches to auto review (4)
Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
acicovic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your work! Approving and merging this!
* Add new Rest API base classes * Implement the Content Helper API namespace * Add tests for the new REST API classes * Update UI providers to use the new API endpoints * Remove unused code and initializations * Fix sonarcloud issues * Refactor to avoid consts and use getters instead * Fix minor docblock issues per code review * Apply code review suggestions by @acicovic * Rename API parameter `content` to `text` * Add `stats` endpoint * Update the UI to use the new API endpoints * Delete the old endpoints * Add tests * Apply code review suggestions by @acicovic * Add `stats` endpoint * Update the UI to use the new API endpoints * Delete the old endpoints * Add tests * Fix E2E test * Add `settings` endpoints * Update UI to use the new settings API * Add tests * Remove old code * Improve comments and whitespace * class-base-endpoint.php: Fix incorrect whitespace * Endpoints/class-base-endpoint.php: Fix incorrect whitespace * Improve comments and whitespace * Improve comments and whitespace * REST API Refactor: Apply fixes/suggestions from the other PRs (#2812) * Apply suggestions from #2731 * Apply suggestions from #2735 * Add dynamic settings endpoint calls * PCH Refactor: Refactor the external services (#2873) * Implement the new Content API service, and remove old RemoteAPI code * Implement caching mechanism for service endpoints * Implement the Suggestions API service * Address PHPCS & PHPStan errors and warnings * Fix post-merge issues and namespaces * Add condition when validate api credentials returns false. * Address code review feedback * Adjust some DocBlocks and whitespace * Make the services base URL static, and remove the old consts * Fix PHPStan (not including tests) * Fix misplaced `@since` tag --------- Co-authored-by: Alex Cicovic <23142906+acicovic@users.noreply.github.com> * PCH Refactor: Update integration tests (#2885) * Implement and update integration tests * Adjust some DocBlocks and whitespace * Adjust some DocBlocks and whitespace * Fix tests * Fix leaking tests * Apply code review suggestions * Remove backticks from function summary * Improve code formatting consistency between 2 tests --------- Co-authored-by: Alex Cicovic <23142906+acicovic@users.noreply.github.com> * Rebuild assets --------- Co-authored-by: Alex Cicovic <23142906+acicovic@users.noreply.github.com>
Description
This PR is part of the effort described in #2426, and implements the
settingsendpoint, which is related with specific plugin settings, such as the dashboard widget settings, and the editor sidebar settings.The endpoint implement both a
/settings/{setting}/getand a/settings/{setting}/setmethod, but the main endpoint -/settings/{setting}/can be used as well, by changing the HTTP verb -GETto retrieve the settings andPUT/POSTto update the settings.Here's the overview of the implemented API endpoints:
The old tests have been migrated to new Endpoints testing, and new tests have been implemented when needed.
The UI was also updated to use these new endpoints, with all the code related with the older endpoints being removed as well.
** Note: since this work as based on the
refactor/internal-api-statsbranch, this PR is using that branch as the base. However, once that branch is merged (in #2734), the PR should auto-rebase torefactor/internal-api.Motivation and context
How has this been tested?
I have validated locally that all the features using the
/settingsendpoint are still working as expected, and added new integration tests to test all the new classes functionalities.