diff options
Diffstat (limited to 'bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/RevisionUndoer.php')
-rw-r--r-- | bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/RevisionUndoer.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/RevisionUndoer.php b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/RevisionUndoer.php new file mode 100644 index 00000000..e411030e --- /dev/null +++ b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/RevisionUndoer.php @@ -0,0 +1,48 @@ +<?php + +namespace Mediawiki\Api\Service; + +use Mediawiki\Api\SimpleRequest; +use Mediawiki\DataModel\Revision; + +/** + * @access private + * + * @author Addshore + */ +class RevisionUndoer extends Service { + + /** + * @param Revision $revision + * + * @return bool + */ + public function undo( Revision $revision ) { + $this->api->postRequest( new SimpleRequest( + 'edit', + $this->getParamsFromRevision( $revision ) + ) ); + return true; + } + + /** + * @param Revision $revision + * + * @return array + */ + private function getParamsFromRevision( Revision $revision ) { + $params = [ + 'undo' => $revision->getId(), + 'token' => $this->api->getToken(), + ]; + + if ( !is_null( $revision->getPageIdentifier()->getId() ) ) { + $params['pageid'] = $revision->getPageIdentifier()->getId(); + } else { + $params['title'] = $revision->getPageIdentifier()->getTitle()->getTitle(); + } + + return $params; + } + +} |