From 8f0c83606310a22520ff4d8b9226224b064ef079 Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 26 Jul 2013 13:52:57 -0700 Subject: [PATCH] Add question and answer transactions to Ponder Summary: Ref T3373. Test Plan: Ran this script, saw valid inserts: setAuthorPHID('herp') ->setObjectPHID('derp') ->setViewPolicy('blarp') ->setEditPolicy('goop') ->setTransactionType('beep') ->setContentSource(PhabricatorContentSource::newForSource('derp', array())) ->save(); id(new PonderAnswerTransaction()) ->setAuthorPHID('herp') ->setObjectPHID('derp') ->setViewPolicy('blarp') ->setEditPolicy('goop') ->setTransactionType('beep') ->setContentSource(PhabricatorContentSource::newForSource('derp', array())) ->save(); id(new PonderQuestionTransactionComment()) ->setCommentVersion(1) ->setAuthorPHID('bloop') ->setViewPolicy('blarp') ->setEditPolicy('goop') ->setContent('blip') ->setContentSource(PhabricatorContentSource::newForSource('derp', array())) ->save(); id(new PonderAnswerTransactionComment()) ->setCommentVersion(1) ->setAuthorPHID('bloop') ->setViewPolicy('blarp') ->setEditPolicy('goop') ->setContent('blip') ->setContentSource(PhabricatorContentSource::newForSource('derp', array())) ->save(); unset($unguarded); echo "OK!\n"; Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T3373 Differential Revision: https://secure.phabricator.com/D6584 --- .../sql/patches/20130726.ponderxactions.sql | 82 +++++++++++++++++++ src/__phutil_library_map__.php | 8 ++ .../storage/PonderAnswerTransaction.php | 28 +++++++ .../PonderAnswerTransactionComment.php | 11 +++ .../storage/PonderQuestionTransaction.php | 28 +++++++ .../PonderQuestionTransactionComment.php | 11 +++ .../patch/PhabricatorBuiltinPatchList.php | 4 + 7 files changed, 172 insertions(+) create mode 100644 resources/sql/patches/20130726.ponderxactions.sql create mode 100644 src/applications/ponder/storage/PonderAnswerTransaction.php create mode 100644 src/applications/ponder/storage/PonderAnswerTransactionComment.php create mode 100644 src/applications/ponder/storage/PonderQuestionTransaction.php create mode 100644 src/applications/ponder/storage/PonderQuestionTransactionComment.php diff --git a/resources/sql/patches/20130726.ponderxactions.sql b/resources/sql/patches/20130726.ponderxactions.sql new file mode 100644 index 0000000000..a3caf75d75 --- /dev/null +++ b/resources/sql/patches/20130726.ponderxactions.sql @@ -0,0 +1,82 @@ +CREATE TABLE {$NAMESPACE}_ponder.ponder_questiontransaction ( + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + phid VARCHAR(64) NOT NULL COLLATE utf8_bin, + authorPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, + objectPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, + viewPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, + editPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, + commentPHID VARCHAR(64) COLLATE utf8_bin, + commentVersion INT UNSIGNED NOT NULL, + transactionType VARCHAR(32) NOT NULL COLLATE utf8_bin, + oldValue LONGTEXT NOT NULL COLLATE utf8_bin, + newValue LONGTEXT NOT NULL COLLATE utf8_bin, + contentSource LONGTEXT NOT NULL COLLATE utf8_bin, + metadata LONGTEXT NOT NULL COLLATE utf8_bin, + dateCreated INT UNSIGNED NOT NULL, + dateModified INT UNSIGNED NOT NULL, + + UNIQUE KEY `key_phid` (phid), + KEY `key_object` (objectPHID) + +) ENGINE=InnoDB, COLLATE utf8_general_ci; + +CREATE TABLE {$NAMESPACE}_ponder.ponder_questiontransaction_comment ( + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + phid VARCHAR(64) NOT NULL COLLATE utf8_bin, + transactionPHID VARCHAR(64) COLLATE utf8_bin, + authorPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, + viewPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, + editPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, + commentVersion INT UNSIGNED NOT NULL, + content LONGTEXT NOT NULL COLLATE utf8_bin, + contentSource LONGTEXT NOT NULL COLLATE utf8_bin, + isDeleted BOOL NOT NULL, + dateCreated INT UNSIGNED NOT NULL, + dateModified INT UNSIGNED NOT NULL, + + UNIQUE KEY `key_phid` (phid), + UNIQUE KEY `key_version` (transactionPHID, commentVersion) + +) ENGINE=InnoDB, COLLATE utf8_general_ci; + +CREATE TABLE {$NAMESPACE}_ponder.ponder_answertransaction ( + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + phid VARCHAR(64) NOT NULL COLLATE utf8_bin, + authorPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, + objectPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, + viewPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, + editPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, + commentPHID VARCHAR(64) COLLATE utf8_bin, + commentVersion INT UNSIGNED NOT NULL, + transactionType VARCHAR(32) NOT NULL COLLATE utf8_bin, + oldValue LONGTEXT NOT NULL COLLATE utf8_bin, + newValue LONGTEXT NOT NULL COLLATE utf8_bin, + contentSource LONGTEXT NOT NULL COLLATE utf8_bin, + metadata LONGTEXT NOT NULL COLLATE utf8_bin, + dateCreated INT UNSIGNED NOT NULL, + dateModified INT UNSIGNED NOT NULL, + + UNIQUE KEY `key_phid` (phid), + KEY `key_object` (objectPHID) + +) ENGINE=InnoDB, COLLATE utf8_general_ci; + +CREATE TABLE {$NAMESPACE}_ponder.ponder_answertransaction_comment ( + id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + phid VARCHAR(64) NOT NULL COLLATE utf8_bin, + transactionPHID VARCHAR(64) COLLATE utf8_bin, + authorPHID VARCHAR(64) NOT NULL COLLATE utf8_bin, + viewPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, + editPolicy VARCHAR(64) NOT NULL COLLATE utf8_bin, + commentVersion INT UNSIGNED NOT NULL, + content LONGTEXT NOT NULL COLLATE utf8_bin, + contentSource LONGTEXT NOT NULL COLLATE utf8_bin, + isDeleted BOOL NOT NULL, + dateCreated INT UNSIGNED NOT NULL, + dateModified INT UNSIGNED NOT NULL, + + UNIQUE KEY `key_phid` (phid), + UNIQUE KEY `key_version` (transactionPHID, commentVersion) + +) ENGINE=InnoDB, COLLATE utf8_general_ci; + diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 019c153b5c..8ca5efe709 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -1875,6 +1875,8 @@ phutil_register_library_map(array( 'PonderAnswerPreviewController' => 'applications/ponder/controller/PonderAnswerPreviewController.php', 'PonderAnswerQuery' => 'applications/ponder/query/PonderAnswerQuery.php', 'PonderAnswerSaveController' => 'applications/ponder/controller/PonderAnswerSaveController.php', + 'PonderAnswerTransaction' => 'applications/ponder/storage/PonderAnswerTransaction.php', + 'PonderAnswerTransactionComment' => 'applications/ponder/storage/PonderAnswerTransactionComment.php', 'PonderAnswerViewController' => 'applications/ponder/controller/PonderAnswerViewController.php', 'PonderAnsweredMail' => 'applications/ponder/mail/PonderAnsweredMail.php', 'PonderComment' => 'applications/ponder/storage/PonderComment.php', @@ -1903,6 +1905,8 @@ phutil_register_library_map(array( 'PonderQuestionSearchEngine' => 'applications/ponder/query/PonderQuestionSearchEngine.php', 'PonderQuestionStatus' => 'applications/ponder/constants/PonderQuestionStatus.php', 'PonderQuestionStatusController' => 'applications/ponder/controller/PonderQuestionStatusController.php', + 'PonderQuestionTransaction' => 'applications/ponder/storage/PonderQuestionTransaction.php', + 'PonderQuestionTransactionComment' => 'applications/ponder/storage/PonderQuestionTransactionComment.php', 'PonderQuestionViewController' => 'applications/ponder/controller/PonderQuestionViewController.php', 'PonderRemarkupRule' => 'applications/ponder/remarkup/PonderRemarkupRule.php', 'PonderReplyHandler' => 'applications/ponder/mail/PonderReplyHandler.php', @@ -3990,6 +3994,8 @@ phutil_register_library_map(array( 'PonderAnswerPreviewController' => 'PonderController', 'PonderAnswerQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PonderAnswerSaveController' => 'PonderController', + 'PonderAnswerTransaction' => 'PhabricatorApplicationTransaction', + 'PonderAnswerTransactionComment' => 'PhabricatorApplicationTransactionComment', 'PonderAnswerViewController' => 'PonderController', 'PonderAnsweredMail' => 'PonderMail', 'PonderComment' => @@ -4033,6 +4039,8 @@ phutil_register_library_map(array( 'PonderQuestionSearchEngine' => 'PhabricatorApplicationSearchEngine', 'PonderQuestionStatus' => 'PonderConstants', 'PonderQuestionStatusController' => 'PonderController', + 'PonderQuestionTransaction' => 'PhabricatorApplicationTransaction', + 'PonderQuestionTransactionComment' => 'PhabricatorApplicationTransactionComment', 'PonderQuestionViewController' => 'PonderController', 'PonderRemarkupRule' => 'PhabricatorRemarkupRuleObject', 'PonderReplyHandler' => 'PhabricatorMailReplyHandler', diff --git a/src/applications/ponder/storage/PonderAnswerTransaction.php b/src/applications/ponder/storage/PonderAnswerTransaction.php new file mode 100644 index 0000000000..70135bfa6d --- /dev/null +++ b/src/applications/ponder/storage/PonderAnswerTransaction.php @@ -0,0 +1,28 @@ + 'sql', 'name' => $this->getPatchPath('20130727.ponderquestionstatus.sql'), ), + '20130726.ponderxactions.sql' => array( + 'type' => 'sql', + 'name' => $this->getPatchPath('20130726.ponderxactions.sql'), + ), ); } }