[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/maniphest/storage/ -> ManiphestTaskSubscriber.php (source)

   1  <?php
   2  
   3  final class ManiphestTaskSubscriber extends ManiphestDAO {
   4  
   5    protected $taskPHID;
   6    protected $subscriberPHID;
   7  
   8    public function getConfiguration() {
   9      return array(
  10        self::CONFIG_IDS          => self::IDS_MANUAL,
  11        self::CONFIG_TIMESTAMPS   => false,
  12        self::CONFIG_COLUMN_SCHEMA => array(
  13          'id' => null,
  14        ),
  15        self::CONFIG_KEY_SCHEMA => array(
  16          'PRIMARY' => array(
  17            'columns' => array('subscriberPHID', 'taskPHID'),
  18            'unique' => true,
  19          ),
  20          'taskPHID' => array(
  21            'columns' => array('taskPHID', 'subscriberPHID'),
  22            'unique' => true,
  23          ),
  24        ),
  25      );
  26    }
  27  
  28    public static function updateTaskSubscribers(ManiphestTask $task) {
  29      $dao = new ManiphestTaskSubscriber();
  30      $conn = $dao->establishConnection('w');
  31  
  32      $sql = array();
  33      $subscribers = $task->getCCPHIDs();
  34      $subscribers[] = $task->getOwnerPHID();
  35      $subscribers = array_unique($subscribers);
  36  
  37      foreach ($subscribers as $subscriber_phid) {
  38        $sql[] = qsprintf(
  39          $conn,
  40          '(%s, %s)',
  41          $task->getPHID(),
  42          $subscriber_phid);
  43      }
  44  
  45      queryfx(
  46        $conn,
  47        'DELETE FROM %T WHERE taskPHID = %s',
  48        $dao->getTableName(),
  49        $task->getPHID());
  50      if ($sql) {
  51        queryfx(
  52          $conn,
  53          'INSERT INTO %T (taskPHID, subscriberPHID) VALUES %Q',
  54          $dao->getTableName(),
  55          implode(', ', $sql));
  56      }
  57    }
  58  
  59  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1