v0.8.0 - Fixed ResourceController.php

This commit is contained in:
frederikpyt
2020-08-12 10:44:54 +02:00
parent 511e0b783f
commit fb88bfa4c8
8 changed files with 46 additions and 52 deletions
@@ -3,9 +3,11 @@
namespace App\Http\Controllers;
use App\Resource;
use App\ResourceCategory;
use App\ResourceExtension;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Symfony\Component\Mime\MimeTypes;
class ResourceController extends Controller
{
@@ -49,30 +51,54 @@ class ResourceController extends Controller
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
public static function store(Request $request)
{
$file = $request->file("resource");
$resourceExtension = ResourceExtension::where("extension", "=", $file->extension())->first();
$resourceExtension = ResourceExtension::query()->where("extension", "=", $file->extension())->first();
//Create resourceExtension if it doesn't exist
if($resourceExtension === null) {
$category = substr($file->getMimeType(), 0, strpos($file->getMimeType(), "/"));
$resourceCategory = ResourceCategory::query()->where("name", "=", $category)->first();
//Create resourceCategory if it doesn't exist
if($resourceCategory === null){
$data = [
"name" => $category,
"description" => "",
"slug" => ""
];
$resourceCategory = new ResourceCategory($data);
$resourceCategory->save();
}
$data = [
"extension" => $file->extension(),
"description" => ""
"description" => "",
"resource_category_id" => $resourceCategory->id
];
$resourceExtension = new ResourceExtension($data);
$resourceExtension->save();
} else {
$resource = new Resource();
$resource->extension_id = $resourceExtension->id;
$resource->filename = substr(md5($file->getFilename() . rand()), 0, 7);
$resource->save();
}
return Response::detect("resources.store");
$resource = new Resource();
$resource->extension_id = $resourceExtension->id;
$fileName = time().'_'.$file->getClientOriginalName();
$filePath = $file->storeAs('uploads', $fileName, 'public');
/* /uploads/filename.ext */
$resource->filename = '/' . $filePath;
$resource->save();
return $resource;
}
/**
@@ -117,6 +143,6 @@ class ResourceController extends Controller
*/
public function destroy($id)
{
//
}
}
+4
View File
@@ -12,6 +12,10 @@ use Illuminate\Database\Eloquent\Model;
//Class of which should extend Model Library
class ResourceCategory extends Model
{
protected $fillable = [
'name', 'description', 'slug'
];
public function resourceExtensions() {
return $this->hasMany("App\ResourceExtension");
}
+1 -1
View File
@@ -13,7 +13,7 @@ use Illuminate\Database\Eloquent\Model;
class ResourceExtension extends Model
{
protected $fillable = [
'extension', 'description'
'extension', 'description', 'resource_category_id'
];
public function resources() {