Skip to content

Commit f85e2b8

Browse files
committed
Remade the whole system to be up to date with laravel 7
1 parent 04f3365 commit f85e2b8

File tree

11 files changed

+277
-636
lines changed

11 files changed

+277
-636
lines changed

src/Commands/FilesystemClear.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111

1212
use Illuminate\Console\Command;
13+
use le0daniel\Laravel\ImageEngine\Utility\Directories;
1314
use Symfony\Component\Finder\Exception\DirectoryNotFoundException;
1415
use Symfony\Component\Finder\Finder;
1516

@@ -152,7 +153,7 @@ public function handle()
152153

153154
foreach ($this->recreateDirectories() as $directory) {
154155
if (!file_exists($directory) && !is_dir($directory)) {
155-
mkdir($directory, 0777, true);
156+
Directories::makeRecursive($directory);
156157
$this->line('Made directory: <info>' . $directory . '</info>');
157158
}
158159
}
@@ -208,4 +209,4 @@ protected function cleanFinder(Finder $finder, int $maxAgeInSeconds)
208209
}
209210
}
210211
}
211-
}
212+
}

src/Commands/ImageUrl.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Illuminate\Console\Command;
1414
use Illuminate\Support\Facades\Storage;
1515
use le0daniel\Laravel\ImageEngine\Image\Image;
16+
use le0daniel\Laravel\ImageEngine\Image\ImageRepresentation;
1617

1718
class ImageUrl extends Command
1819
{
@@ -34,15 +35,16 @@ public function handle()
3435
$disk = $this->argument('disk');
3536
$extension = $this->argument('extension');
3637

37-
$image = new Image(
38+
$image = ImageRepresentation::from(
3839
$path,
3940
$size,
4041
Carbon::now()->addMinutes(10),
4142
$disk
4243
);
4344

44-
if (!Storage::disk($disk)->exists($path)) {
45-
return $this->line('Image not found. Path ' . $path . ' on disk ' . $disk, 'error');
45+
if (!$image->disk()->exists($path)) {
46+
$this->line('Image not found. Path ' . $path . ' on disk ' . $disk, 'error');
47+
return;
4648
}
4749

4850
if (!$extension) {
@@ -60,4 +62,4 @@ public function handle()
6062

6163
}
6264

63-
}
65+
}

src/Http/Controllers/ImageController.php

Lines changed: 44 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -8,79 +8,66 @@
88

99
namespace le0daniel\Laravel\ImageEngine\Http\Controllers;
1010

11-
use Illuminate\Http\Request;
1211
use Illuminate\Routing\Controller as BaseController;
13-
use le0daniel\Laravel\ImageEngine\Image\Image;
12+
use Illuminate\Support\Facades\Log;
1413
use le0daniel\Laravel\ImageEngine\Image\ImageException;
15-
use le0daniel\Laravel\ImageEngine\Image\Renderer;
16-
use le0daniel\Laravel\ImageEngine\Image\Signer;
14+
use le0daniel\Laravel\ImageEngine\Image\ImageEngine;
15+
use le0daniel\Laravel\ImageEngine\Utility\SignatureException;
1716

1817
class ImageController extends BaseController
1918
{
20-
/**
21-
* @var Signer
22-
*/
23-
protected $signer;
19+
private ImageEngine $imageEngine;
2420

25-
/**
26-
* @var Renderer
27-
*/
28-
protected $renderer;
29-
30-
/**
31-
* ImageController constructor.
32-
* @param Signer $signer
33-
* @param Renderer $renderer
34-
*/
35-
public function __construct(Signer $signer, Renderer $renderer)
21+
public function __construct(ImageEngine $imageEngine)
3622
{
37-
$this->signer = $signer;
38-
$this->renderer = $renderer;
23+
$this->imageEngine = $imageEngine;
3924
}
4025

26+
private function expired()
27+
{
28+
return response()->json(
29+
[
30+
'error' => 'Expired'
31+
],
32+
410
33+
);
34+
}
4135

42-
/**
43-
* @param string $unverifiedPayload
44-
* @param string $signature
45-
* @param string $extension
46-
* @return \Illuminate\Http\JsonResponse|\Symfony\Component\HttpFoundation\BinaryFileResponse
47-
* @throws \Exception
48-
*/
49-
public function image(string $unverifiedPayload, string $signature, string $extension)
36+
public function image(string $folder, string $path, string $extension)
5037
{
5138
try {
52-
$payload = $this->signer->verifyAndUnpack($unverifiedPayload, $signature);
53-
} catch (\Exception $error) {
54-
return response()->json([
55-
'error' => 'Invalid signature.'
56-
], 403);
57-
}
58-
59-
$image = Image::createFromPayload($payload);
39+
$imageRepresentation = $this->imageEngine->getImageSignedString($folder . $path);
40+
if ($imageRepresentation->isExpired) {
41+
return $this->expired();
42+
}
6043

61-
// Check if expired
62-
if ($image->isExpired()) {
63-
response()->json([
64-
'error' => 'Expired'
65-
], 403);
66-
}
44+
$absoluteImagePath = $this->imageEngine->render(
45+
$imageRepresentation,
46+
$extension,
47+
false
48+
);
6749

68-
try {
6950
return response()->file(
70-
$this->renderer->render($image, $extension),
71-
$image->cacheControlHeaders()
51+
$absoluteImagePath,
52+
$imageRepresentation->cacheControlHeaders()
53+
);
54+
} catch (SignatureException $signatureException) {
55+
Log::error('Image Rendering: ' . $signatureException->getMessage());
56+
return response()->json(
57+
[
58+
'Error' => 'Invalid signature provided',
59+
],
60+
422
61+
);
62+
} catch (ImageException $error) {
63+
Log::error('Image Rendering: ' . $error->getMessage() . ' => ' . $error->getHint());
64+
return response()->json(
65+
[
66+
'Error' => 'Internal rendering error',
67+
],
68+
500
7269
);
73-
} catch (ImageException $exception) {
74-
if (config('app.debug') === true) {
75-
return response()->json([
76-
'error' => $exception->getMessage(),
77-
'hint' => $exception->getHint(),
78-
], 500);
79-
}
80-
return response()->json([
81-
'error' => 'Invalid request. Forbidden'
82-
], 403);
8370
}
8471
}
8572

86-
}
73+
}

src/Image/Image.php

Lines changed: 0 additions & 189 deletions
This file was deleted.

0 commit comments

Comments
 (0)