From 91e8b569618957c86757ef89bac666e9102db5ae Mon Sep 17 00:00:00 2001 From: Alexander Skvortsov Date: Mon, 8 Mar 2021 16:20:26 -0500 Subject: [PATCH] Add deprecated "user" filter for posts In the filterer refactor for ListPostsController, the filter key was changed to `author` for consistency with the AuthorFilterGambit used in discussions. This commit adds a deprecated `user` filter back in for a release to allow for a graceful transition --- src/Filter/FilterServiceProvider.php | 1 + src/Post/Filter/UserFilter.php | 21 +++++++++++++ tests/integration/api/posts/ListTest.php | 38 ++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 src/Post/Filter/UserFilter.php diff --git a/src/Filter/FilterServiceProvider.php b/src/Filter/FilterServiceProvider.php index d2484287e..09ec80df3 100644 --- a/src/Filter/FilterServiceProvider.php +++ b/src/Filter/FilterServiceProvider.php @@ -46,6 +46,7 @@ class FilterServiceProvider extends AbstractServiceProvider PostFilter\IdFilter::class, PostFilter\NumberFilter::class, PostFilter\TypeFilter::class, + PostFilter\UserFilter::class, ], ]; }); diff --git a/src/Post/Filter/UserFilter.php b/src/Post/Filter/UserFilter.php new file mode 100644 index 000000000..b03fce5d2 --- /dev/null +++ b/src/Post/Filter/UserFilter.php @@ -0,0 +1,21 @@ +assertEquals(['1', '2', '3', '4', '5'], Arr::pluck($data['data'], 'id')); } + /** + * @test + * @deprecated + */ + public function user_filter_works() + { + $response = $this->send( + $this->request('GET', '/api/posts', ['authenticatedAs' => 1]) + ->withQueryParams([ + 'filter' => ['user' => 'admin'], + ]) + ); + + $this->assertEquals(200, $response->getStatusCode()); + $data = json_decode($response->getBody()->getContents(), true); + + $this->assertEquals(['1', '2'], Arr::pluck($data['data'], 'id')); + } + + /** + * @test + * @deprecated + */ + public function user_filter_works_with_multiple_values() + { + $response = $this->send( + $this->request('GET', '/api/posts', ['authenticatedAs' => 1]) + ->withQueryParams([ + 'filter' => ['user' => 'admin,normal'], + ]) + ); + + $this->assertEquals(200, $response->getStatusCode()); + $data = json_decode($response->getBody()->getContents(), true); + + $this->assertEquals(['1', '2', '3', '4', '5'], Arr::pluck($data['data'], 'id')); + } + /** * @test */