Page MenuHomestyx hydra

PhabricatorSubscriptionsExportEngineExtension.php
No OneTemporary

PhabricatorSubscriptionsExportEngineExtension.php

<?php
final class PhabricatorSubscriptionsExportEngineExtension
extends PhabricatorExportEngineExtension {
const EXTENSIONKEY = 'subscriptions';
public function supportsObject($object) {
return ($object instanceof PhabricatorSubscribableInterface);
}
public function newExportFields() {
return array(
id(new PhabricatorPHIDListExportField())
->setKey('subscriberPHIDs')
->setLabel(pht('Subscriber PHIDs')),
id(new PhabricatorStringListExportField())
->setKey('subscribers')
->setLabel(pht('Subscribers')),
);
}
public function newExportData(array $objects) {
$viewer = $this->getViewer();
$object_phids = mpull($objects, 'getPHID');
if (!$object_phids) {
return array();
}
$projects_query = id(new PhabricatorEdgeQuery())
->withSourcePHIDs($object_phids)
->withEdgeTypes(
array(
PhabricatorObjectHasSubscriberEdgeType::EDGECONST,
));
$projects_query->execute();
$handles = $viewer->loadHandles($projects_query->getDestinationPHIDs());
$map = array();
foreach ($objects as $object) {
$object_phid = $object->getPHID();
$project_phids = $projects_query->getDestinationPHIDs(
array($object_phid),
array(PhabricatorObjectHasSubscriberEdgeType::EDGECONST));
$handle_list = $handles->newSublist($project_phids);
$handle_list = iterator_to_array($handle_list);
$handle_names = mpull($handle_list, 'getName');
$handle_names = array_values($handle_names);
$map[] = array(
'subscriberPHIDs' => $project_phids,
'subscribers' => $handle_names,
);
}
return $map;
}
}

File Metadata

Mime Type
text/x-php
Expires
Mon, Dec 1, 3:24 AM (23 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
430189
Default Alt Text
PhabricatorSubscriptionsExportEngineExtension.php (1 KB)

Event Timeline