Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 61 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
DeleteInactiveNewsletters | |
0.00% |
0 / 56 |
|
0.00% |
0 / 2 |
20 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 5 |
|
0.00% |
0 / 1 |
2 | |||
execute | |
0.00% |
0 / 51 |
|
0.00% |
0 / 1 |
12 |
1 | <?php |
2 | |
3 | $basePath = getenv( 'MW_INSTALL_PATH' ) !== false ? |
4 | getenv( 'MW_INSTALL_PATH' ) : __DIR__ . '/../../..'; |
5 | |
6 | require_once $basePath . '/maintenance/Maintenance.php'; |
7 | |
8 | /** |
9 | * @author Addshore |
10 | */ |
11 | class DeleteInactiveNewsletters extends Maintenance { |
12 | |
13 | public function __construct() { |
14 | parent::__construct(); |
15 | $this->addDescription( |
16 | "Deletes all inactive newsletters\nThese newsletters will no longer be restorable" ); |
17 | $this->addOption( 'delete', 'Performs the deletion' ); |
18 | $this->requireExtension( 'Newsletter' ); |
19 | } |
20 | |
21 | public function execute() { |
22 | $dbw = $this->getDB( DB_PRIMARY ); |
23 | |
24 | if ( !$this->hasOption( 'delete' ) ) { |
25 | $count = $dbw->selectField( |
26 | 'nl_newsletters', |
27 | 'COUNT(*)', |
28 | [ 'nl_active' => 0 ], |
29 | __METHOD__ |
30 | ); |
31 | $this->output( "Found $count inactive newsletters to delete.\n" ); |
32 | $this->output( "Please run the script again with the --delete option " |
33 | . "to really delete the revisions.\n" ); |
34 | return; |
35 | } |
36 | |
37 | $this->output( "Getting inactive newsletters...\n" ); |
38 | $idsToDelete = $dbw->selectFieldValues( |
39 | 'nl_newsletters', |
40 | 'nl_id', |
41 | [ 'nl_active' => 0 ], |
42 | __METHOD__ |
43 | ); |
44 | |
45 | if ( !$idsToDelete ) { |
46 | $this->output( "No newsletters found to be deleted" ); |
47 | return; |
48 | } |
49 | |
50 | $dbw->newDeleteQueryBuilder() |
51 | ->deleteFrom( 'nl_newsletters' ) |
52 | ->where( [ 'nl_id' => $idsToDelete ] ) |
53 | ->caller( __METHOD__ ) |
54 | ->execute(); |
55 | $count = $dbw->affectedRows(); |
56 | $this->output( "Deleted $count inactive newsletters.\n" ); |
57 | |
58 | $dbw->newDeleteQueryBuilder() |
59 | ->deleteFrom( 'nl_issues' ) |
60 | ->where( [ 'nli_newsletter_id' => $idsToDelete ] ) |
61 | ->caller( __METHOD__ ) |
62 | ->execute(); |
63 | $count = $dbw->affectedRows(); |
64 | $this->output( "Deleted $count inactive newsletter issues.\n" ); |
65 | |
66 | $dbw->newDeleteQueryBuilder() |
67 | ->deleteFrom( 'nl_publishers' ) |
68 | ->where( [ 'nlp_newsletter_id' => $idsToDelete ] ) |
69 | ->caller( __METHOD__ ) |
70 | ->execute(); |
71 | $count = $dbw->affectedRows(); |
72 | $this->output( "Deleted $count inactive newsletter publishers.\n" ); |
73 | |
74 | $dbw->newDeleteQueryBuilder() |
75 | ->deleteFrom( 'nl_subscriptions' ) |
76 | ->where( [ 'nls_newsletter_id' => $idsToDelete ] ) |
77 | ->caller( __METHOD__ ) |
78 | ->execute(); |
79 | $count = $dbw->affectedRows(); |
80 | $this->output( "Deleted $count inactive newsletter subscriptions.\n" ); |
81 | |
82 | $this->output( "Done!\n" ); |
83 | } |
84 | |
85 | } |
86 | |
87 | $maintClass = DeleteInactiveNewsletters::class; |
88 | require_once RUN_MAINTENANCE_IF_MAIN; |