Completed
Push — master ( 11966d...5d848f )
by Sam
13s
created

RevisionUndoer::undo()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 7
ccs 0
cts 6
cp 0
rs 9.4285
cc 1
eloc 5
nc 1
nop 1
crap 2
1
<?php
2
3
namespace Mediawiki\Api\Service;
4
5
use Mediawiki\Api\SimpleRequest;
6
use Mediawiki\DataModel\Revision;
7
8
/**
9
 * @access private
10
 *
11
 * @author Addshore
12
 */
13
class RevisionUndoer extends Service {
14
15
	/**
16
	 * @param Revision $revision
17
	 *
18
	 * @return bool
19
	 */
20
	public function undo( Revision $revision ) {
21
		$this->api->postRequest( new SimpleRequest(
22
			'edit',
23
			$this->getParamsFromRevision( $revision )
24
		) );
25
		return true;
26
	}
27
28
	/**
29
	 * @param Revision $revision
30
	 *
31
	 * @return array
32
	 */
33
	private function getParamsFromRevision( Revision $revision ) {
34
		$params = [
35
			'undo' => $revision->getId(),
36
			'token' => $this->api->getToken(),
37
		];
38
39
		if ( !is_null( $revision->getPageIdentifier()->getId() ) ) {
40
			$params['pageid'] = $revision->getPageIdentifier()->getId();
41
		} else {
42
			$params['title'] = $revision->getPageIdentifier()->getTitle()->getTitle();
43
		}
44
45
		return $params;
46
	}
47
48
}
49