Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 58 |
|
0.00% |
0 / 6 |
CRAP | |
0.00% |
0 / 1 |
FrontendModulesFactory | |
0.00% |
0 / 58 |
|
0.00% |
0 / 6 |
42 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 15 |
|
0.00% |
0 / 1 |
2 | |||
newEventDetailsModule | |
0.00% |
0 / 11 |
|
0.00% |
0 / 1 |
2 | |||
newEventDetailsParticipantsModule | |
0.00% |
0 / 12 |
|
0.00% |
0 / 1 |
2 | |||
newEmailParticipantsModule | |
0.00% |
0 / 3 |
|
0.00% |
0 / 1 |
2 | |||
newResponseStatisticsModule | |
0.00% |
0 / 10 |
|
0.00% |
0 / 1 |
2 | |||
newClickwrapFormModule | |
0.00% |
0 / 7 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | declare( strict_types=1 ); |
4 | |
5 | namespace MediaWiki\Extension\CampaignEvents\FrontendModules; |
6 | |
7 | use Language; |
8 | use MediaWiki\Extension\CampaignEvents\Event\ExistingEventRegistration; |
9 | use MediaWiki\Extension\CampaignEvents\Hooks\CampaignEventsHookRunner; |
10 | use MediaWiki\Extension\CampaignEvents\Messaging\CampaignsUserMailer; |
11 | use MediaWiki\Extension\CampaignEvents\MWEntity\CampaignsCentralUserLookup; |
12 | use MediaWiki\Extension\CampaignEvents\MWEntity\PageURLResolver; |
13 | use MediaWiki\Extension\CampaignEvents\MWEntity\UserLinker; |
14 | use MediaWiki\Extension\CampaignEvents\Organizers\OrganizersStore; |
15 | use MediaWiki\Extension\CampaignEvents\Participants\ParticipantsStore; |
16 | use MediaWiki\Extension\CampaignEvents\Permissions\PermissionChecker; |
17 | use MediaWiki\Extension\CampaignEvents\Questions\EventAggregatedAnswersStore; |
18 | use MediaWiki\Extension\CampaignEvents\Questions\EventQuestionsRegistry; |
19 | use MediaWiki\Extension\CampaignEvents\Questions\ParticipantAnswersStore; |
20 | use MediaWiki\Extension\CampaignEvents\Time\EventTimeFormatter; |
21 | use MediaWiki\Extension\CampaignEvents\TrackingTool\TrackingToolRegistry; |
22 | use MediaWiki\User\UserFactory; |
23 | use Wikimedia\Message\IMessageFormatterFactory; |
24 | |
25 | class FrontendModulesFactory { |
26 | public const SERVICE_NAME = 'CampaignEventsFrontendModulesFactory'; |
27 | |
28 | private IMessageFormatterFactory $messageFormatterFactory; |
29 | private OrganizersStore $organizersStore; |
30 | private ParticipantsStore $participantsStore; |
31 | private PageURLResolver $pageURLResolver; |
32 | private UserLinker $userLinker; |
33 | private CampaignsCentralUserLookup $centralUserLookup; |
34 | private PermissionChecker $permissionChecker; |
35 | private EventTimeFormatter $eventTimeFormatter; |
36 | private UserFactory $userFactory; |
37 | private TrackingToolRegistry $trackingToolRegistry; |
38 | private CampaignsUserMailer $userMailer; |
39 | private ParticipantAnswersStore $answersStore; |
40 | private EventAggregatedAnswersStore $aggregatedAnswersStore; |
41 | private EventQuestionsRegistry $questionsRegistry; |
42 | private CampaignEventsHookRunner $hookRunner; |
43 | |
44 | /** |
45 | * @param IMessageFormatterFactory $messageFormatterFactory |
46 | * @param OrganizersStore $organizersStore |
47 | * @param ParticipantsStore $participantsStore |
48 | * @param PageURLResolver $pageURLResolver |
49 | * @param UserLinker $userLinker |
50 | * @param CampaignsCentralUserLookup $centralUserLookup |
51 | * @param PermissionChecker $permissionChecker |
52 | * @param EventTimeFormatter $eventTimeFormatter |
53 | * @param UserFactory $userFactory |
54 | * @param TrackingToolRegistry $trackingToolRegistry |
55 | * @param CampaignsUserMailer $userMailer |
56 | * @param ParticipantAnswersStore $answersStore |
57 | * @param EventAggregatedAnswersStore $aggregatedAnswersStore |
58 | * @param EventQuestionsRegistry $questionsRegistry |
59 | * @param CampaignEventsHookRunner $hookRunner |
60 | */ |
61 | public function __construct( |
62 | IMessageFormatterFactory $messageFormatterFactory, |
63 | OrganizersStore $organizersStore, |
64 | ParticipantsStore $participantsStore, |
65 | PageURLResolver $pageURLResolver, |
66 | UserLinker $userLinker, |
67 | CampaignsCentralUserLookup $centralUserLookup, |
68 | PermissionChecker $permissionChecker, |
69 | EventTimeFormatter $eventTimeFormatter, |
70 | UserFactory $userFactory, |
71 | TrackingToolRegistry $trackingToolRegistry, |
72 | CampaignsUserMailer $userMailer, |
73 | ParticipantAnswersStore $answersStore, |
74 | EventAggregatedAnswersStore $aggregatedAnswersStore, |
75 | EventQuestionsRegistry $questionsRegistry, |
76 | CampaignEventsHookRunner $hookRunner |
77 | ) { |
78 | $this->messageFormatterFactory = $messageFormatterFactory; |
79 | $this->organizersStore = $organizersStore; |
80 | $this->participantsStore = $participantsStore; |
81 | $this->pageURLResolver = $pageURLResolver; |
82 | $this->userLinker = $userLinker; |
83 | $this->centralUserLookup = $centralUserLookup; |
84 | $this->permissionChecker = $permissionChecker; |
85 | $this->eventTimeFormatter = $eventTimeFormatter; |
86 | $this->userFactory = $userFactory; |
87 | $this->trackingToolRegistry = $trackingToolRegistry; |
88 | $this->userMailer = $userMailer; |
89 | $this->answersStore = $answersStore; |
90 | $this->aggregatedAnswersStore = $aggregatedAnswersStore; |
91 | $this->questionsRegistry = $questionsRegistry; |
92 | $this->hookRunner = $hookRunner; |
93 | } |
94 | |
95 | /** |
96 | * @param ExistingEventRegistration $registration |
97 | * @param Language $language |
98 | * @return EventDetailsModule |
99 | */ |
100 | public function newEventDetailsModule( |
101 | ExistingEventRegistration $registration, |
102 | Language $language |
103 | ): EventDetailsModule { |
104 | return new EventDetailsModule( |
105 | $this->messageFormatterFactory, |
106 | $this->organizersStore, |
107 | $this->pageURLResolver, |
108 | $this->userLinker, |
109 | $this->eventTimeFormatter, |
110 | $this->trackingToolRegistry, |
111 | $this->hookRunner, |
112 | $registration, |
113 | $language |
114 | ); |
115 | } |
116 | |
117 | /** |
118 | * @param Language $language |
119 | * @param string $statisticsTabUrl |
120 | * @return EventDetailsParticipantsModule |
121 | */ |
122 | public function newEventDetailsParticipantsModule( |
123 | Language $language, |
124 | string $statisticsTabUrl |
125 | ): EventDetailsParticipantsModule { |
126 | return new EventDetailsParticipantsModule( |
127 | $this->messageFormatterFactory, |
128 | $this->userLinker, |
129 | $this->participantsStore, |
130 | $this->centralUserLookup, |
131 | $this->permissionChecker, |
132 | $this->userFactory, |
133 | $this->userMailer, |
134 | $this->questionsRegistry, |
135 | $language, |
136 | $statisticsTabUrl |
137 | ); |
138 | } |
139 | |
140 | public function newEmailParticipantsModule(): EmailParticipantsModule { |
141 | return new EmailParticipantsModule( |
142 | $this->messageFormatterFactory |
143 | ); |
144 | } |
145 | |
146 | public function newResponseStatisticsModule( |
147 | ExistingEventRegistration $event, |
148 | Language $language |
149 | ): ResponseStatisticsModule { |
150 | return new ResponseStatisticsModule( |
151 | $this->messageFormatterFactory, |
152 | $this->answersStore, |
153 | $this->aggregatedAnswersStore, |
154 | $this->questionsRegistry, |
155 | $this->participantsStore, |
156 | $this, |
157 | $event, |
158 | $language |
159 | ); |
160 | } |
161 | |
162 | /** |
163 | * @param ExistingEventRegistration $event |
164 | * @param Language $language |
165 | * @return ClickwrapFormModule |
166 | */ |
167 | public function newClickwrapFormModule( |
168 | ExistingEventRegistration $event, |
169 | Language $language |
170 | ): ClickwrapFormModule { |
171 | return new ClickwrapFormModule( |
172 | $event, |
173 | $this->organizersStore, |
174 | $this->messageFormatterFactory, |
175 | $language, |
176 | $this->centralUserLookup |
177 | ); |
178 | } |
179 | } |