Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
EventIngress
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 3
12
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 handlePageRevisionUpdatedEvent
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 handlePageDeletedEvent
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace MediaWiki\Extension\Gadgets;
4
5use MediaWiki\DomainEvent\DomainEventIngress;
6use MediaWiki\Page\Event\PageDeletedEvent;
7use MediaWiki\Page\Event\PageDeletedListener;
8use MediaWiki\Page\Event\PageRevisionUpdatedEvent;
9use MediaWiki\Page\Event\PageRevisionUpdatedListener;
10use MediaWiki\Title\TitleValue;
11
12/**
13 * Event subscriber acting as an ingress for relevant events emitted
14 * by MediaWiki core.
15 */
16class EventIngress
17    extends DomainEventIngress
18    implements PageRevisionUpdatedListener, PageDeletedListener
19{
20    public function __construct(
21        private readonly GadgetRepo $gadgetRepo,
22    ) {
23    }
24
25    /**
26     * Handle PageRevisionUpdatedEvent
27     */
28    public function handlePageRevisionUpdatedEvent(
29        PageRevisionUpdatedEvent $event
30    ): void {
31        $title = TitleValue::newFromPage( $event->getPage() );
32        $this->gadgetRepo->handlePageUpdate( $title );
33    }
34
35    /**
36     * Handle PageDeletedEvent
37     */
38    public function handlePageDeletedEvent(
39        PageDeletedEvent $event
40    ): void {
41        $title = TitleValue::newFromPage( $event->getPage() );
42        $this->gadgetRepo->handlePageUpdate( $title );
43    }
44
45}