* cleanup

This commit is contained in:
Danyi Dávid 2017-07-21 21:15:09 +02:00
parent 23d72b566c
commit 40ac17d892
6 changed files with 22 additions and 12 deletions

View File

@ -27,7 +27,6 @@
*/
$app->get('/', App\Action\HomePageAction::class, 'home');
$app->get('/api/ping', App\Action\PingAction::class, 'api.ping');
$app->get('/api/galleries', App\Action\ListGalleriesAction::class, 'api.galleries');
$app->get('/api/gallery/{slug}', App\Action\GetGalleryImagesAction::class, 'api.gallery');
$app->get('/api/image/{slug}/{image}[/thumb]', App\Action\GetImageAction::class, 'api.image');

View File

@ -8,7 +8,7 @@ set('ssh_multiplexing', true);
set('repository', 'ssh://gogs@gogs.ragnarok.yvan.hu:2206/yvan/gallery-api.git');
set('shared_dirs', [
'vendor',
// 'vendor',
'data/galleries',
]);
set('writable_dirs', []);

View File

@ -20,8 +20,6 @@ class GetGalleryImagesAction implements ServerMiddlewareInterface
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
$slug = $request->getAttribute('slug', false);
return new JsonResponse([
'images' => $this->galleryService->getGallery($slug),
]);
return new JsonResponse($this->galleryService->getGallery($slug));
}
}

View File

@ -6,7 +6,9 @@ use App\Service\GalleryService;
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface as ServerMiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
use Zend\Diactoros\Response;
use Zend\Diactoros\Response\JsonResponse;
use Zend\Diactoros\Stream;
class GetImageAction implements ServerMiddlewareInterface
{
@ -20,8 +22,21 @@ class GetImageAction implements ServerMiddlewareInterface
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
$slug = $request->getAttribute('slug', false);
return new JsonResponse([
'images' => $this->galleryService->getGallery($slug),
]);
$image = $request->getAttribute('image', false);
$thumb = $request->getAttribute('thumb', false);
$imageFileName = $this->galleryService->getImage($slug, $image, $thumb);
$stream = new Stream(fopen($imageFileName, 'r'));
$response = new Response();
return $response
->withHeader('Content-Type', (new \finfo(FILEINFO_MIME))->file($imageFileName))
->withHeader('Content-Disposition', 'attachment; filename=' . basename($imageFileName))
->withHeader('Content-Transfer-Encoding', 'Binary')
->withHeader('Content-Description', 'File Transfer')
->withHeader('Pragma', 'public')
->withHeader('Expires', '0')
->withHeader('Cache-Control', 'must-revalidate')
->withBody($stream)
->withHeader('Content-Length', "{$stream->getSize()}");
}
}

View File

@ -19,8 +19,6 @@ class ListGalleriesAction implements ServerMiddlewareInterface
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
return new JsonResponse([
'galleries' => $this->galleryService->listGalleries()
]);
return new JsonResponse($this->galleryService->listGalleries());
}
}

View File

@ -69,7 +69,7 @@ class GalleryService
? $galleryDir . $image
: $this->getResizedImageName($galleryDir, $image, $size);
return fopen($imageFileName, 'r');
return $imageFileName;
}
protected function getResizedImageName($galleryDirectory, $imageName, $size)