kuvia/app/Helper/Access.php
2021-01-21 01:31:02 +01:00

46 lines
1.5 KiB
PHP

<?php
namespace App\Helper;
use App\Entity\File;
use App\Models\Gallery;
use App\Models\Tenant;
class Access {
const TYPE_S3 = "Access";
const TYPE_CACHE = "Cache";
private $valideTyps = [self::TYPE_S3, self::TYPE_CACHE];
public function add(\App\Models\Image $image,File $file, string $typ) {
if(!in_array($typ, $this->valideTyps)) {
throw new \Exception("Invalide Typ for Access Log");
}
$this->addAccessLog($image->tenant, null, $image->id, $typ, $file->getSize());
}
public function addById(int $image_id, File $file, string $typ) {
$image = \App\Models\Image::query()->where("id", "=", $image_id)->firstOrFail();
$this->add($image, $file, $typ);
}
public function addComplete(\App\Models\Image $image, Gallery $gallery, Tenant $tenant, File $file, string $typ) {
if(!in_array($typ, $this->valideTyps)) {
throw new \Exception("Invalide Typ for Access Log");
}
$this->addAccessLog($tenant->id, $gallery->id, $image->id, $typ, $file->getSize());
}
private function addAccessLog(?int $tenant, ?int $gallery, int $image, string $typ, int $size) {
$access = new \App\Models\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();
}
}