Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/constants/DifferentialLegacyQuery.php
- This file was added.
| <?php | |||||
| final class DifferentialLegacyQuery | |||||
| extends Phobject { | |||||
| const STATUS_ANY = 'status-any'; | |||||
| const STATUS_OPEN = 'status-open'; | |||||
| const STATUS_ACCEPTED = 'status-accepted'; | |||||
| const STATUS_NEEDS_REVIEW = 'status-needs-review'; | |||||
| const STATUS_NEEDS_REVISION = 'status-needs-revision'; | |||||
| const STATUS_CLOSED = 'status-closed'; | |||||
| const STATUS_ABANDONED = 'status-abandoned'; | |||||
| public static function getAllConstants() { | |||||
| return array_keys(self::getMap()); | |||||
| } | |||||
| public static function getQueryValues($status) { | |||||
| if ($status === self::STATUS_ANY) { | |||||
| return null; | |||||
| } | |||||
| $map = self::getMap(); | |||||
| if (!isset($map[$status])) { | |||||
| throw new Exception( | |||||
| pht( | |||||
| 'Unknown revision status filter constant "%s".', | |||||
| $status)); | |||||
| } | |||||
| $values = array(); | |||||
| foreach ($map[$status] as $status_constant) { | |||||
| $status_object = DifferentialRevisionStatus::newForStatus( | |||||
| $status_constant); | |||||
| $legacy_key = $status_object->getLegacyKey(); | |||||
| if ($legacy_key !== null) { | |||||
| $values[] = $legacy_key; | |||||
| } | |||||
| } | |||||
| return $values; | |||||
| } | |||||
| private static function getMap() { | |||||
| $all = array( | |||||
| DifferentialRevisionStatus::NEEDS_REVIEW, | |||||
| DifferentialRevisionStatus::NEEDS_REVISION, | |||||
| DifferentialRevisionStatus::CHANGES_PLANNED, | |||||
| DifferentialRevisionStatus::ACCEPTED, | |||||
| DifferentialRevisionStatus::PUBLISHED, | |||||
| DifferentialRevisionStatus::ABANDONED, | |||||
| ); | |||||
| $open = array(); | |||||
| $closed = array(); | |||||
| foreach ($all as $status) { | |||||
| $status_object = DifferentialRevisionStatus::newForStatus($status); | |||||
| if ($status_object->isClosedStatus()) { | |||||
| $closed[] = $status_object->getKey(); | |||||
| } else { | |||||
| $open[] = $status_object->getKey(); | |||||
| } | |||||
| } | |||||
| return array( | |||||
| self::STATUS_ANY => $all, | |||||
| self::STATUS_OPEN => $open, | |||||
| self::STATUS_ACCEPTED => array( | |||||
| DifferentialRevisionStatus::ACCEPTED, | |||||
| ), | |||||
| self::STATUS_NEEDS_REVIEW => array( | |||||
| DifferentialRevisionStatus::NEEDS_REVIEW, | |||||
| ), | |||||
| self::STATUS_NEEDS_REVISION => array( | |||||
| DifferentialRevisionStatus::NEEDS_REVISION, | |||||
| ), | |||||
| self::STATUS_CLOSED => $closed, | |||||
| self::STATUS_ABANDONED => array( | |||||
| DifferentialRevisionStatus::ABANDONED, | |||||
| ), | |||||
| ); | |||||
| } | |||||
| } | |||||