Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
BaseNewsletterPresentationModel
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 4
30
0.00% covered (danger)
0.00%
0 / 1
 canRender
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getNewsletterId
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getNewsletterName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getNewsletterUrl
0.00% covered (danger)
0.00%
0 / 10
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace MediaWiki\Extension\Newsletter\Notifications;
4
5use EchoEventPresentationModel;
6use MediaWiki\Extension\Newsletter\Newsletter;
7use MediaWiki\Title\Title;
8use RuntimeException;
9
10abstract class BaseNewsletterPresentationModel extends EchoEventPresentationModel {
11
12    public function canRender() {
13        $nl = Newsletter::newFromID( $this->getNewsletterId() );
14        return (bool)$nl;
15    }
16
17    protected function getNewsletterId() {
18        return (int)$this->event->getExtraParam( 'newsletter-id' );
19    }
20
21    protected function getNewsletterName() {
22        return $this->event->getExtraParam( 'newsletter-name' );
23    }
24
25    protected function getNewsletterUrl() {
26        $result = Title::makeTitleSafe(
27            NS_NEWSLETTER,
28            $this->getNewsletterName()
29        )->getFullURL();
30        if ( !$result ) {
31            throw new RuntimeException( 'Cannot find newsletter with name \"' .
32                $this->getNewsletterName() .
33                '\"'
34            );
35        }
36        return $result;
37    }
38
39}