<?php
namespace App\Http\Controllers\Api\V2;
use App\Http\Requests\Api\V2\ImageRequest;
use App\Http\Resources\V2\UploadedFileCollection;
use App\Models\Upload;
use Illuminate\Support\Facades\Storage;
class FileController extends Controller {
public function index() {
$all_uploads = (auth()->user()->user_type == 'seller') ? Upload::where('user_id', auth()->user()->id) : Upload::query();
$all_uploads = $all_uploads->paginate(20)->appends(request()->query());
return new UploadedFileCollection($all_uploads);
}
public function imageUpload(ImageRequest $request) {
try{
$file = $request->file('image');
$data = Storage::disk('uploads')->putFile('/', $file);
$filePath = 'uploads/all/' . $data;
$upload = Upload::create([
'user_id' => auth()->id(),
'path' => $filePath,
'file_name' => $data,
'file_original_name' => $file->getClientOriginalName(),
'file_size' => $file->getSize(),
'type' => 'image',
'extension' => $file->getClientOriginalExtension()
]);
return response()->json([
'result' => true,
'message' => translate("Image updated"),
'path' => uploaded_asset($upload->id),
'upload_id' => $upload->id
]);
}catch (\Exception $e){
return response()->json([
'result' => false,
'message' => $e->getMessage(),
'path' => null,
'upload_id' => 0
]);
}
}
}
|