* 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('/', 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/galleries', App\Action\ListGalleriesAction::class, 'api.galleries');
$app->get('/api/gallery/{slug}', App\Action\GetGalleryImagesAction::class, 'api.gallery'); $app->get('/api/gallery/{slug}', App\Action\GetGalleryImagesAction::class, 'api.gallery');
$app->get('/api/image/{slug}/{image}[/thumb]', App\Action\GetImageAction::class, 'api.image'); $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('repository', 'ssh://gogs@gogs.ragnarok.yvan.hu:2206/yvan/gallery-api.git');
set('shared_dirs', [ set('shared_dirs', [
'vendor', // 'vendor',
'data/galleries', 'data/galleries',
]); ]);
set('writable_dirs', []); set('writable_dirs', []);

View File

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

View File

@ -6,7 +6,9 @@ use App\Service\GalleryService;
use Interop\Http\ServerMiddleware\DelegateInterface; use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface as ServerMiddlewareInterface; use Interop\Http\ServerMiddleware\MiddlewareInterface as ServerMiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
use Zend\Diactoros\Response;
use Zend\Diactoros\Response\JsonResponse; use Zend\Diactoros\Response\JsonResponse;
use Zend\Diactoros\Stream;
class GetImageAction implements ServerMiddlewareInterface class GetImageAction implements ServerMiddlewareInterface
{ {
@ -20,8 +22,21 @@ class GetImageAction implements ServerMiddlewareInterface
public function process(ServerRequestInterface $request, DelegateInterface $delegate) public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{ {
$slug = $request->getAttribute('slug', false); $slug = $request->getAttribute('slug', false);
return new JsonResponse([ $image = $request->getAttribute('image', false);
'images' => $this->galleryService->getGallery($slug), $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) public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{ {
return new JsonResponse([ return new JsonResponse($this->galleryService->listGalleries());
'galleries' => $this->galleryService->listGalleries()
]);
} }
} }

View File

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