public function testConstruct() { $dataset = uniqid(); $format = uniqid(); $download = new Download($dataset, $format); $this->assertEquals($dataset, $download->getDataset()); $this->assertEquals($format, $download->getFormat()); $this->assertCount(2, $download->getParameters()); }
/** * @param string $dataset * @param string $_format * @param string $query * * @return Response */ public function downloadAction($dataset, $_format, $query) { $response = new Response(); $download = new Download($dataset, $_format); $download->setFilter($query); $local = $this->getLocalDataset($download); if (null !== $local) { $results = $local; } else { $results = $this->download($download); } switch (strtolower($_format)) { case 'json': $results = json_encode($results); break; case 'csv': $response->headers->set('Content-Type', 'text/csv'); break; } $response->setContent($results); $response->headers->set('Content-Disposition', sprintf('attachment; filename="%s.%s"', $dataset, $_format)); return $response; }
/** * @param Download $download * * @return null|string */ public function getLocalDatasetContent(Download $download) { $content = null; $filepath = $this->finder->findDataset($download->getDataset(), $download->getFormat(), $download->getFilter()); if (false !== $filepath) { $content = $this->finder->getContent($filepath); } return $content; }