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
This commit is contained in:
Alexander Skvortsov 2021-03-08 16:20:26 -05:00
parent 94f08f55fa
commit 97d1a42ad2
3 changed files with 60 additions and 0 deletions

View File

@ -46,6 +46,7 @@ class FilterServiceProvider extends AbstractServiceProvider
PostFilter\IdFilter::class,
PostFilter\NumberFilter::class,
PostFilter\TypeFilter::class,
PostFilter\UserFilter::class,
],
];
});

View File

@ -0,0 +1,21 @@
<?php
/*
* This file is part of Flarum.
*
* For detailed copyright and license information, please view the
* LICENSE file that was distributed with this source code.
*/
namespace Flarum\Post\Filter;
/**
* @deprecated beta 16, remove beta 17. Use AuthorFilter instead.
*/
class UserFilter extends AuthorFilter
{
public function getFilterKey(): string
{
return 'user';
}
}

View File

@ -114,6 +114,44 @@ class ListTests extends TestCase
$this->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
*/