/** * respond with document if non json mime-type is requested * * @param Request $request Current http request * @param string $id id of file * * @return Response */ public function getAction(Request $request, $id) { $accept = $request->headers->get('accept'); if (substr(strtolower($accept), 0, 16) === 'application/json') { return parent::getAction($request, $id); } $response = $this->getResponse(); if (!$this->fileManager->has($id)) { $response->setStatusCode(Response::HTTP_NOT_FOUND); return $response; } $record = $this->findRecord($id); $data = $this->fileManager->read($id); $response->setStatusCode(Response::HTTP_OK); $response->headers->set('Content-Type', $record->getMetadata()->getMime()); return $this->render('GravitonFileBundle:File:index.raw.twig', ['data' => $data], $response); }
/** * Verifies the correct behavior of read method * * @return void */ public function testRead() { $this->fileSystem->expects($this->once())->method('read')->willReturn('myData'); $manager = new FileManager($this->fileSystem, $this->fileDocumentFactory); $this->assertEquals('myData', $manager->read('myKey')); }