/** * Export a list of recipient and all their data * * @param int $uidRecipientList * @param string $authCode */ public function exportAction($uidRecipientList, $authCode) { // Assert we are using supported formats $availableFormats = ['csv', 'xml']; $format = $this->request->getFormat(); if (!in_array($format, $availableFormats)) { $format = reset($availableFormats); $this->request->setFormat($format); } $recipientList = $this->recipientListRepository->findByUidInitialized($uidRecipientList); if (\TYPO3\CMS\Core\Utility\GeneralUtility::stdAuthCode($recipientList->_getCleanProperties()) != $authCode) { $this->response->setStatus(401); return 'not authorized !'; } $title = $recipientList->getTitle() . '-' . $recipientList->getUid(); $this->response->setHeader('Content-Type', 'text/' . $format, true); $this->response->setHeader('Content-Description', 'File transfer', true); $this->response->setHeader('Content-Disposition', 'attachment; filename="' . $title . '.' . $format . '"', true); $recipients = []; while ($recipient = $recipientList->getRecipient()) { $recipients[] = $recipient; } // If we have at least one recipient we can extract the field if ($recipients) { $fields = array_keys(reset($recipients)); } else { $fields = []; } $this->view->assign('recipients', $recipients); $this->view->assign('title', $title); $this->view->assign('fields', $fields); }
public function testFindByUidInitialized() { $recipientList = $this->recipientListRepository->findByUidInitialized(1000); $this->assertNotNull($recipientList); $this->assertSame(2, $recipientList->getCount(), 'should not have to call init() to get count'); }