Test
This commit is contained in:
parent
26939ba1ad
commit
a6d367b261
1 changed files with 81 additions and 0 deletions
81
app/Jobs/ResizeImage.php
Normal file
81
app/Jobs/ResizeImage.php
Normal file
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
namespace App\Jobs;
|
||||
|
||||
use App\Models\Access;
|
||||
use App\Models\Gallery;
|
||||
use App\Models\Image;
|
||||
use App\Models\Tenant;
|
||||
use Gumlet\ImageResize;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldBeUnique;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class ResizeImage implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
|
||||
private $image_id;
|
||||
private $size;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(int $image_id, int $size)
|
||||
{
|
||||
$this->image_id = $image_id;
|
||||
$this->size = $size;
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$image = Image::query()->where("id", "=", $this->image_id)->firstOrFail();
|
||||
$gallery = Gallery::query()->where("id", "=", $image->gallery)->firstOrFail();
|
||||
$tenant = Tenant::query()->where("id", "=", $gallery->tenant)->firstOrFail();
|
||||
$cacheName = "cache/".$tenant->url."_".$gallery->url."_".$image->id;
|
||||
|
||||
//Check if orginal size is cached on the current system
|
||||
if (Storage::disk('cache')->exists($cacheName."_orginal")) {
|
||||
$file = Storage::disk("cache")->get($cacheName."_orginal");
|
||||
} else {
|
||||
$this->addAccessLog($tenant->id, $gallery->id, $image->id, "Access", $image->size);
|
||||
$file = Storage::disk($image->driver)->get($image->path);
|
||||
if(env("CACHE_ORGINAL"))
|
||||
{
|
||||
Storage::disk("cache")->put($cacheName."_orginal", $file);
|
||||
}
|
||||
}
|
||||
|
||||
$image = ImageResize::createFromString($file);
|
||||
$image->resizeToLongSide($this->size);
|
||||
Storage::disk("cache")->put($cacheName."_".$this->size, $image->getImageAsString());
|
||||
}
|
||||
|
||||
|
||||
private function addAccessLog(int $tenant, int $gallery, int $image, string $typ, int $size) {
|
||||
$access = new Access();
|
||||
$access->year = date("Y");
|
||||
$access->month = date("m");
|
||||
$access->day = date("d");
|
||||
$access->hour = date("H");
|
||||
$access->image = $image;
|
||||
$access->gallery = $gallery;
|
||||
$access->tenant = $tenant;
|
||||
$access->typ = $typ;
|
||||
$access->size = $size;
|
||||
$access->saveOrFail();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue