Files
portal/app/Http/Controllers/ImageController.php
2020-04-18 15:58:48 +02:00

58 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Resources\Image as ImageResource;
use App\Models\Memo;
use App\User;
use Illuminate\Http\Request;
use Intervention\Image\Facades\Image;
class ImageController extends Controller
{
public function users(User $user)
{
$data = $this->storeImage();
$newImage = auth()->user()->images()->create([
'path' => $data['path'],
'width' => $data['width'],
'height' => $data['height'],
'location' => $data['location'],
]);
return new ImageResource($newImage);
}
public function memos(Memo $memo)
{
$data = $this->storeImage();
$newImage = $memo->images()->create([
'path' => $data['path'],
'width' => $data['width'],
'height' => $data['height'],
'location' => $data['location'],
]);
return new ImageResource($newImage);
}
private function storeImage() {
$data = request()->validate([
'image' => 'required',
'width' => 'required',
'height' => 'required',
'location' => 'required',
]);
$data['path'] = $data['image']->store('images', 'public');
Image::make($data['image'])
->fit($data['width'], $data['height'])
->save(storage_path('app/public/images/'.$data['image']->hashName()));
return $data;
}
}