Completed
Push — main ( 2daa48...b5d932 )
by
unknown
08:38
created

RevisionUndoer::undo()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
c 0
b 0
f 0
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Addwiki\Mediawiki\Api\Service;
4
5
use Addwiki\Mediawiki\Api\Client\SimpleRequest;
6
use Addwiki\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
	public function undo( Revision $revision ): bool {
19
		$this->api->postRequest( new SimpleRequest(
20
			'edit',
21
			$this->getParamsFromRevision( $revision )
22
		) );
23
		return true;
24
	}
25
26
	/**
27
	 * @param Revision $revision
28
	 *
29
	 * @return array <string int|string|null>
30
	 */
31
	private function getParamsFromRevision( Revision $revision ): array {
32
		$params = [
33
			'undo' => $revision->getId(),
34
			'token' => $this->api->getToken(),
35
		];
36
37
		if ( $revision->getPageIdentifier()->getId() !== null ) {
38
			$params['pageid'] = $revision->getPageIdentifier()->getId();
39
		} else {
40
			$params['title'] = $revision->getPageIdentifier()->getTitle()->getTitle();
41
		}
42
43
		return $params;
44
	}
45
46
}
47