New endpoint for instant search
Part of #798 (closed)
What does this MR do?
Refactors some parts of the instant search in the topbar:
- Uses a DTO for search results in the SearchGateway
- Creates a new endpoint
GET /search/all
for the instant search in the topbar - Removes the client-side wrapper code that mapped the legacy results from the Xhr endpoint
- Adds a permissions class for searches
- Makes all affected functions a bit more PHP 7.4 compatible
How confident are you it won't break things if deployed?
Quite sure, seems to work on localhost. The vue front-end already used the new format and doesn't change. The database request and overall behavior shouldn't change as well.
How to test
Steps a reviewer can take to verify that this MR does what it says it does e.g.
- Checkout branch locally
- Login as foodsaver
- Search for a region, store, or another foodsaver in the topbar
- Click the results and see if they lead to the correct pages
Checklist
-
added a test, or explain why one is not needed/possible... -
no unrelated changes -
asked someone for a code review -
joined #foodsharing-beta channel at https://slackin.yunity.org -
added an entry to CHANGELOG.md (description, merge request link, username(s)) -
Once your MR has been merged, you are responsible to update the #foodsharing-beta Slack channel about what has been changed here. They will test your work in different browsers, roles or other settings