From 40d082291f313ae9a08b6c9f5ab349e66819d978 Mon Sep 17 00:00:00 2001 From: Anders Date: Mon, 19 Apr 2021 09:11:51 +0200 Subject: [PATCH] v1.5.11 - Event, News & Reservation deletion in sql db - And deletion of files in uploads when you go onto home pages and they're not used in DB --- .../app/Http/Controllers/NewsController.php | 5 ---- .../app/Http/Controllers/RootController.php | 25 ++++++++++++---- .../2020_08_06_092000_create_news_table.php | 2 +- .../2021_01_22_002613_remove_event.php | 29 +++++++++++++++++++ .../2021_01_22_002613_remove_news.php | 29 +++++++++++++++++++ .../2021_01_22_002613_remove_reservation.php | 29 +++++++++++++++++++ skolehjem/public/.htaccess | 5 ++++ 7 files changed, 113 insertions(+), 11 deletions(-) create mode 100644 skolehjem/database/migrations/2021_01_22_002613_remove_event.php create mode 100644 skolehjem/database/migrations/2021_01_22_002613_remove_news.php create mode 100644 skolehjem/database/migrations/2021_01_22_002613_remove_reservation.php diff --git a/skolehjem/app/Http/Controllers/NewsController.php b/skolehjem/app/Http/Controllers/NewsController.php index 1cfc2e7..b5fc055 100644 --- a/skolehjem/app/Http/Controllers/NewsController.php +++ b/skolehjem/app/Http/Controllers/NewsController.php @@ -33,11 +33,6 @@ class NewsController extends Controller */ public function index(Request $request) { - $news = News::query()->where('news_expiration_date', '<=', date('Y-m-d').'T'.date('H:i') )->get(); - foreach ($news as $new) { - $new->delete(); - } - $news = News::query()->orderBy('id', 'desc')->get(); return Response::detect("news.index", [ "news" => $news ]); diff --git a/skolehjem/app/Http/Controllers/RootController.php b/skolehjem/app/Http/Controllers/RootController.php index 4b83023..c582ec4 100644 --- a/skolehjem/app/Http/Controllers/RootController.php +++ b/skolehjem/app/Http/Controllers/RootController.php @@ -3,9 +3,13 @@ namespace App\Http\Controllers; use App\Event; +use App\Guide; use App\News; +use App\Resource; +use App\User; use Illuminate\Http\Request; use Illuminate\Http\Response; +use Illuminate\Support\Facades\File; date_default_timezone_set('Europe/Copenhagen'); @@ -20,12 +24,23 @@ class RootController extends Controller public function index() { $perPage = 5; - //Delete news Articels - $news = News::query()->where('news_expiration_date', '<=', date('Y-m-d').'T'.date('H:i'))->get(); - foreach ($news as $new) { - $new->delete(); - } + foreach (File::allFiles(public_path('uploads')) as $file) { + $resource = Resource::query()->where('filename', '=', '/uploads/' . $file->getFilename())->get(); + if(count($resource) < 1) + unlink(public_path() . '/uploads/' . $file->getFilename()); + else { + $events = Event::query()->where('resource_id', '=', $resource[0]->id)->get(); + $news = News::query()->where('resource_id', '=', $resource[0]->id)->get(); + $guides = Guide::query()->where('resource_id', '=', $resource[0]->id)->get(); + $users = User::query()->where('resource_id', '=', $resource[0]->id)->get(); + + if(count($events) < 1 && count($news) < 1 && count($guides) < 1 && count($users) < 1) { + $resource[0]->delete(); + unlink(public_path() . '/uploads/' . $file->getFilename()); + } + } + } //All news $newsCollection = News::query()->orderBy('id', 'desc')->get(); diff --git a/skolehjem/database/migrations/2020_08_06_092000_create_news_table.php b/skolehjem/database/migrations/2020_08_06_092000_create_news_table.php index 0f63ca0..fe97db3 100644 --- a/skolehjem/database/migrations/2020_08_06_092000_create_news_table.php +++ b/skolehjem/database/migrations/2020_08_06_092000_create_news_table.php @@ -18,7 +18,7 @@ class CreateNewsTable extends Migration $table->string("name"); $table->string('subname'); $table->longText("content"); - $table->date('news_expiration_date')->nullable(); + $table->dateTime('news_expiration_date')->nullable(); $table->foreignId('resource_id')->nullable()->constrained('resources', 'id'); $table->integer("arrangement_id")->nullable(); //Gets ID from given event, menu, guide or news $table->foreignid("type_id")->nullable()->constrained("news_types", "id"); diff --git a/skolehjem/database/migrations/2021_01_22_002613_remove_event.php b/skolehjem/database/migrations/2021_01_22_002613_remove_event.php new file mode 100644 index 0000000..94e280c --- /dev/null +++ b/skolehjem/database/migrations/2021_01_22_002613_remove_event.php @@ -0,0 +1,29 @@ += 24 AND date(events.date) < CURDATE()"); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/skolehjem/database/migrations/2021_01_22_002613_remove_news.php b/skolehjem/database/migrations/2021_01_22_002613_remove_news.php new file mode 100644 index 0000000..cebd6fd --- /dev/null +++ b/skolehjem/database/migrations/2021_01_22_002613_remove_news.php @@ -0,0 +1,29 @@ +