protected function execute(ConduitAPIRequest $request) { $logs = $request->getValue('logs'); if (!is_array($logs)) { $logs = array(); } $template = new PhabricatorChatLogEvent(); $template->setLoggedByPHID($request->getUser()->getPHID()); $objs = array(); foreach ($logs as $log) { $channel_name = idx($log, 'channel'); $service_name = idx($log, 'serviceName'); $service_type = idx($log, 'serviceType'); $channel = id(new PhabricatorChatLogChannel())->loadOneWhere('channelName = %s AND serviceName = %s AND serviceType = %s', $channel_name, $service_name, $service_type); if (!$channel) { $channel = id(new PhabricatorChatLogChannel())->setChannelName($channel_name)->setserviceName($service_name)->setServiceType($service_type)->setViewPolicy(PhabricatorPolicies::POLICY_USER)->setEditPolicy(PhabricatorPolicies::POLICY_USER)->save(); } $obj = clone $template; $obj->setChannelID($channel->getID()); $obj->setType(idx($log, 'type')); $obj->setAuthor(idx($log, 'author')); $obj->setEpoch(idx($log, 'epoch')); $obj->setMessage(idx($log, 'message')); $obj->save(); $objs[] = $obj; } return array_values(mpull($objs, 'getID')); }
protected function execute(ConduitAPIRequest $request) { $logs = $request->getValue('logs'); if (!is_array($logs)) { $logs = array(); } $template = new PhabricatorChatLogEvent(); $template->setLoggedByPHID($request->getUser()->getPHID()); $objs = array(); foreach ($logs as $log) { $obj = clone $template; $obj->setChannel(idx($log, 'channel')); $obj->setType(idx($log, 'type')); $obj->setAuthor(idx($log, 'author')); $obj->setEpoch(idx($log, 'epoch')); $obj->setMessage(idx($log, 'message')); $obj->save(); $objs[] = $obj; } return array_values(mpull($objs, 'getID')); }