1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-17 12:22:42 +01:00

Give Phriction documents modern string status constants instead of numeric constants

Summary:
Depends on D19099. Ref T13077. Updates Phriction documents to string constants to make API interactions cleaner and statuses more practical to extend.

This does not seem to require any transaction migrations because none of the Phriction transactions actually store status values: status is always a side effect of other edits.

Test Plan: Created, edited, deleted, moved documents. Saw appropriate UI cues. Browsed and filtered documents by status in the index.

Maniphest Tasks: T13077

Differential Revision: https://secure.phabricator.com/D19100
This commit is contained in:
epriestley 2018-02-15 12:34:56 -08:00
parent c1056f6dab
commit 143350fdba
5 changed files with 19 additions and 6 deletions

View file

@ -0,0 +1,2 @@
ALTER TABLE {$NAMESPACE}_phriction.phriction_document
CHANGE status status VARCHAR(32) NOT NULL COLLATE {$COLLATE_TEXT};

View file

@ -0,0 +1,11 @@
UPDATE {$NAMESPACE}_phriction.phriction_document
SET status = 'active' WHERE status = '0';
UPDATE {$NAMESPACE}_phriction.phriction_document
SET status = 'deleted' WHERE status = '1';
UPDATE {$NAMESPACE}_phriction.phriction_document
SET status = 'moved' WHERE status = '2';
UPDATE {$NAMESPACE}_phriction.phriction_document
SET status = 'stub' WHERE status = '3';

View file

@ -3,10 +3,10 @@
final class PhrictionDocumentStatus final class PhrictionDocumentStatus
extends PhabricatorObjectStatus { extends PhabricatorObjectStatus {
const STATUS_EXISTS = 0; const STATUS_EXISTS = 'active';
const STATUS_DELETED = 1; const STATUS_DELETED = 'deleted';
const STATUS_MOVED = 2; const STATUS_MOVED = 'moved';
const STATUS_STUB = 3; const STATUS_STUB = 'stub';
public static function getConduitConstant($const) { public static function getConduitConstant($const) {
static $map = array( static $map = array(

View file

@ -196,7 +196,7 @@ final class PhrictionDocumentQuery
if ($this->statuses !== null) { if ($this->statuses !== null) {
$where[] = qsprintf( $where[] = qsprintf(
$conn, $conn,
'd.status IN (%Ld)', 'd.status IN (%Ls)',
$this->statuses); $this->statuses);
} }

View file

@ -31,7 +31,7 @@ final class PhrictionDocument extends PhrictionDAO
'slug' => 'sort128', 'slug' => 'sort128',
'depth' => 'uint32', 'depth' => 'uint32',
'contentID' => 'id?', 'contentID' => 'id?',
'status' => 'uint32', 'status' => 'text32',
'mailKey' => 'bytes20', 'mailKey' => 'bytes20',
), ),
self::CONFIG_KEY_SCHEMA => array( self::CONFIG_KEY_SCHEMA => array(