function action_list_items($input) { // TODO : Eventually, this method should filter according to the actual permissions, but because // it is only to be used for tracker sync at this time, admin privileges are just fine. if (!Perms::get()->admin_trackers) { throw new Services_Exception_Denied(tr('Reserved for tracker administrators')); } $trackerId = $input->trackerId->int(); $offset = $input->offset->int(); $maxRecords = $input->maxRecords->int(); $status = $input->status->word(); $format = $input->format->word(); $modifiedSince = $input->modifiedSince->int(); $definition = Tracker_Definition::get($trackerId); if (!$definition) { throw new Services_Exception_NotFound(); } $items = $this->utilities->getItems(array('trackerId' => $trackerId, 'status' => $status, 'modifiedSince' => $modifiedSince), $maxRecords, $offset); if ($format !== 'raw') { foreach ($items as &$item) { $item = $this->utilities->processValues($definition, $item); } } return array('trackerId' => $trackerId, 'offset' => $offset, 'maxRecords' => $maxRecords, 'result' => $items); }