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

View File

@ -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)
{
//
}
}

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");
}

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() {

View File

@ -50,8 +50,8 @@ return [
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'root' => public_path(''),
'url' => env('APP_URL').'/public',
'visibility' => 'public',
],

View File

@ -6,7 +6,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateResourceCategory extends Migration
class CreateResourceCategories extends Migration
{
/**
* Run the migrations.

View File

@ -1,36 +0,0 @@
<?php
//Migrations acts as a version control for the database allowing you to modify the app's database schema
//allows use of necessary libraries
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateResourceCategories extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
/*Schema::create('resource_categories', function (Blueprint $table) {
$table->id();
$table->string("name")->unique();
$table->text("description");
$table->string("slug")->unique();
$table->timestamps();
});*/
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('resource_categories');
}
}