From 1d84b5b86b848d7b084d82e010a36aaa7a00d0ab Mon Sep 17 00:00:00 2001 From: epriestley Date: Tue, 18 Dec 2018 15:23:07 -0800 Subject: [PATCH] Give Pholio images a more modern initializer method Summary: Depends on D19910. Ref T11351. Minor changes to make this behave in a more modern way. Test Plan: - Destroyed a mock. - Lipsum'd a mock. - Poked around, edited/viewed mocks. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T11351 Differential Revision: https://secure.phabricator.com/D19911 --- .../controller/PholioImageUploadController.php | 2 +- .../controller/PholioMockEditController.php | 4 ++-- .../PhabricatorPholioMockTestDataGenerator.php | 9 +++++---- .../pholio/storage/PholioImage.php | 18 ++++++++++++------ src/applications/pholio/storage/PholioMock.php | 7 ++++--- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/applications/pholio/controller/PholioImageUploadController.php b/src/applications/pholio/controller/PholioImageUploadController.php index 0329d3eb1d..39dd661a4a 100644 --- a/src/applications/pholio/controller/PholioImageUploadController.php +++ b/src/applications/pholio/controller/PholioImageUploadController.php @@ -22,7 +22,7 @@ final class PholioImageUploadController extends PholioController { $title = $file->getName(); } - $image = id(new PholioImage()) + $image = PholioImage::initializeNewImage() ->attachFile($file) ->setName($title) ->setDescription($description) diff --git a/src/applications/pholio/controller/PholioMockEditController.php b/src/applications/pholio/controller/PholioMockEditController.php index 89d1fe2a50..9a09c9bc67 100644 --- a/src/applications/pholio/controller/PholioMockEditController.php +++ b/src/applications/pholio/controller/PholioMockEditController.php @@ -140,7 +140,7 @@ final class PholioMockEditController extends PholioController { $sequence = $sequence_map[$file_phid]; if ($replaces_image_phid) { - $replace_image = id(new PholioImage()) + $replace_image = PholioImage::initializeNewImage() ->setReplacesImagePHID($replaces_image_phid) ->setFilePhid($file_phid) ->attachFile($file) @@ -153,7 +153,7 @@ final class PholioMockEditController extends PholioController { ->setNewValue($replace_image); $posted_mock_images[] = $replace_image; } else if (!$existing_image) { // this is an add - $add_image = id(new PholioImage()) + $add_image = PholioImage::initializeNewImage() ->setFilePhid($file_phid) ->attachFile($file) ->setName(strlen($title) ? $title : $file->getName()) diff --git a/src/applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php b/src/applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php index 039b0ddeef..c038fcf922 100644 --- a/src/applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php +++ b/src/applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php @@ -41,10 +41,11 @@ final class PhabricatorPholioMockTestDataGenerator $sequence = 0; $images = array(); foreach ($files as $file) { - $image = new PholioImage(); - $image->setFilePHID($file->getPHID()); - $image->setSequence($sequence++); - $image->attachMock($mock); + $image = PholioImage::initializeNewImage() + ->setFilePHID($file->getPHID()) + ->setSequence($sequence++) + ->attachMock($mock); + $images[] = $image; } diff --git a/src/applications/pholio/storage/PholioImage.php b/src/applications/pholio/storage/PholioImage.php index 70f6e8b8c4..e0b55bae10 100644 --- a/src/applications/pholio/storage/PholioImage.php +++ b/src/applications/pholio/storage/PholioImage.php @@ -9,16 +9,23 @@ final class PholioImage extends PholioDAO protected $mockID; protected $filePHID; - protected $name = ''; - protected $description = ''; + protected $name; + protected $description; protected $sequence; - protected $isObsolete = 0; + protected $isObsolete; protected $replacesImagePHID = null; private $inlineComments = self::ATTACHABLE; private $file = self::ATTACHABLE; private $mock = self::ATTACHABLE; + public static function initializeNewImage() { + return id(new self()) + ->setName('') + ->setDescription('') + ->setIsObsolete(0); + } + protected function getConfiguration() { return array( self::CONFIG_AUX_PHID => true, @@ -43,8 +50,8 @@ final class PholioImage extends PholioDAO ) + parent::getConfiguration(); } - public function generatePHID() { - return PhabricatorPHID::generateNewPHID(PholioImagePHIDType::TYPECONST); + public function getPHIDType() { + return PholioImagePHIDType::TYPECONST; } public function attachFile(PhabricatorFile $file) { @@ -67,7 +74,6 @@ final class PholioImage extends PholioDAO return $this->mock; } - public function attachInlineComments(array $inline_comments) { assert_instances_of($inline_comments, 'PholioTransactionComment'); $this->inlineComments = $inline_comments; diff --git a/src/applications/pholio/storage/PholioMock.php b/src/applications/pholio/storage/PholioMock.php index 569513cb46..7ce4ece479 100644 --- a/src/applications/pholio/storage/PholioMock.php +++ b/src/applications/pholio/storage/PholioMock.php @@ -295,9 +295,10 @@ final class PholioMock extends PholioDAO PhabricatorDestructionEngine $engine) { $this->openTransaction(); - $images = id(new PholioImage())->loadAllWhere( - 'mockID = %d', - $this->getID()); + $images = id(new PholioImageQuery()) + ->setViewer($engine->getViewer()) + ->withMockIDs(array($this->getID())) + ->execute(); foreach ($images as $image) { $image->delete(); }