Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 31 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 1 |
EventsPagerFactory | |
0.00% |
0 / 31 |
|
0.00% |
0 / 3 |
12 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 | |||
newTablePager | |
0.00% |
0 / 11 |
|
0.00% |
0 / 1 |
2 | |||
newListPager | |
0.00% |
0 / 13 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | declare( strict_types=1 ); |
4 | |
5 | namespace MediaWiki\Extension\CampaignEvents\Pager; |
6 | |
7 | use IContextSource; |
8 | use MediaWiki\Cache\LinkBatchFactory; |
9 | use MediaWiki\Extension\CampaignEvents\Database\CampaignsDatabaseHelper; |
10 | use MediaWiki\Extension\CampaignEvents\MWEntity\CampaignsPageFactory; |
11 | use MediaWiki\Extension\CampaignEvents\MWEntity\CentralUser; |
12 | use MediaWiki\Extension\CampaignEvents\MWEntity\PageURLResolver; |
13 | use MediaWiki\Extension\CampaignEvents\MWEntity\UserLinker; |
14 | use MediaWiki\Extension\CampaignEvents\Organizers\OrganizersStore; |
15 | use MediaWiki\Linker\LinkRenderer; |
16 | use MediaWiki\User\Options\UserOptionsLookup; |
17 | |
18 | class EventsPagerFactory { |
19 | public const SERVICE_NAME = 'CampaignEventsEventsPagerFactory'; |
20 | |
21 | private CampaignsDatabaseHelper $databaseHelper; |
22 | private CampaignsPageFactory $campaignsPageFactory; |
23 | private PageURLResolver $pageURLResolver; |
24 | private LinkBatchFactory $linkBatchFactory; |
25 | private UserLinker $userLinker; |
26 | private OrganizersStore $organiserStore; |
27 | private UserOptionsLookup $options; |
28 | |
29 | /** |
30 | * @param CampaignsDatabaseHelper $databaseHelper |
31 | * @param CampaignsPageFactory $campaignsPageFactory |
32 | * @param PageURLResolver $pageURLResolver |
33 | * @param LinkBatchFactory $linkBatchFactory |
34 | * @param UserLinker $userLinker |
35 | * @param OrganizersStore $organiserStore |
36 | */ |
37 | public function __construct( |
38 | CampaignsDatabaseHelper $databaseHelper, |
39 | CampaignsPageFactory $campaignsPageFactory, |
40 | PageURLResolver $pageURLResolver, |
41 | LinkBatchFactory $linkBatchFactory, |
42 | UserLinker $userLinker, |
43 | OrganizersStore $organiserStore, |
44 | UserOptionsLookup $options |
45 | ) { |
46 | $this->databaseHelper = $databaseHelper; |
47 | $this->campaignsPageFactory = $campaignsPageFactory; |
48 | $this->pageURLResolver = $pageURLResolver; |
49 | $this->linkBatchFactory = $linkBatchFactory; |
50 | $this->userLinker = $userLinker; |
51 | $this->organiserStore = $organiserStore; |
52 | $this->options = $options; |
53 | } |
54 | |
55 | /** |
56 | * @param IContextSource $context |
57 | * @param LinkRenderer $linkRenderer |
58 | * @param string $search |
59 | * @param string|null $status One of the EventsTablePager::STATUS_* constants |
60 | * @param CentralUser $user |
61 | * @return EventsTablePager |
62 | */ |
63 | public function newTablePager( |
64 | IContextSource $context, |
65 | LinkRenderer $linkRenderer, |
66 | string $search, |
67 | ?string $status, |
68 | CentralUser $user |
69 | ): EventsTablePager { |
70 | return new EventsTablePager( |
71 | $context, |
72 | $linkRenderer, |
73 | $this->databaseHelper, |
74 | $this->campaignsPageFactory, |
75 | $this->pageURLResolver, |
76 | $this->linkBatchFactory, |
77 | $search, |
78 | $status, |
79 | $user, |
80 | ); |
81 | } |
82 | |
83 | /** |
84 | * @param string $search |
85 | * @param int|null $meetingType |
86 | * @param string $startDate |
87 | * @param string $endDate |
88 | * @return EventsListPager |
89 | */ |
90 | public function newListPager( |
91 | string $search, |
92 | ?int $meetingType, |
93 | string $startDate, |
94 | string $endDate |
95 | ): EventsListPager { |
96 | return new EventsListPager( |
97 | $this->userLinker, |
98 | $this->campaignsPageFactory, |
99 | $this->pageURLResolver, |
100 | $this->organiserStore, |
101 | $this->linkBatchFactory, |
102 | $this->options, |
103 | $this->databaseHelper, |
104 | $search, |
105 | $meetingType, |
106 | $startDate, |
107 | $endDate |
108 | ); |
109 | } |
110 | } |