diff options
Diffstat (limited to 'bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/ImageRotator.php')
-rw-r--r-- | bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/ImageRotator.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/ImageRotator.php b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/ImageRotator.php new file mode 100644 index 00000000..ba5624dc --- /dev/null +++ b/bin/reevotech/vendor/addwiki/mediawiki-api/src/Service/ImageRotator.php @@ -0,0 +1,56 @@ +<?php + +namespace Mediawiki\Api\Service; + +use Mediawiki\Api\SimpleRequest; +use Mediawiki\Api\UsageException; +use Mediawiki\DataModel\File; + +/** + * @access private + * + * @author Addshore + */ +class ImageRotator extends Service { + + /** + * NOTE: This service has not been fully tested + * + * @param File $file + * @param int $rotation Degrees to rotate image clockwise, One value: 90, 180, 270 + * + * @throws UsageException + * @return bool + */ + public function rotate( File $file, $rotation ) { + $params = [ + 'rotation' => $rotation, + 'token' => $this->api->getToken(), + ]; + + if ( !is_null( $file->getPageIdentifier()->getTitle() ) ) { + $params['titles'] = $file->getPageIdentifier()->getTitle()->getText(); + } else { + $params['pageids'] = $file->getPageIdentifier()->getId(); + } + + $result = $this->api->postRequest( new SimpleRequest( 'imagerotate', $params ) ); + + // This module sometimes gives odd errors so deal with them.. + if ( array_key_exists( 'imagerotate', $result ) ) { + $imageRotate = array_pop( $result['imagerotate'] ); + if ( array_key_exists( 'result', $imageRotate ) && + $imageRotate['result'] == 'Failure' + ) { + throw new UsageException( + 'imagerotate-Failure', + $imageRotate['errormessage'], + $result + ); + } + } + + return true; + } + +} |